Method and apparatus for using metadata to provide location information

ABSTRACT

A method, an apparatus, and a computer program product for wireless communication are provided. In an aspect, method operations for broadcasting a first signal comprising a first expression code in association with availability of location information of a UE; determining the location information associated with the UE; determining a second expression code associated with the location information; and broadcasting a second signal comprising the second expression code and the location information, independent of the first signal. In another aspect, a method includes the operations of receiving, from a second UE, a first signal comprising a first expression code associated with the second UE; determining a second expression code based on the received first signal; receiving a second signal from the second UE, the second signal comprising the second expression code; and determining a location of the second UE based on the received second signal and the determined second expression code.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application claims the benefit of U.S. Provisional Application Ser.No. 62/052,419, entitled “USING PUSH NOTIFICATIONS TO TRIGGER ANANNOUNCING UE TO UPDATE LOCATION INFO IN LTE DIRECT,” and filed on Sep.18, 2014, which is expressly incorporated by reference herein in itsentirety.

BACKGROUND

Field

The present disclosure relates generally to communication systems, andmore particularly, to methods and apparatuses for using metadata toprovide location information.

Background

Wireless communication systems are widely deployed to provide varioustelecommunication services such as telephony, video, data, messaging,and broadcasts. Typical wireless communication systems may employmultiple-access technologies capable of supporting communication withmultiple users by sharing available system resources (e.g., bandwidth,transmit power). Examples of such multiple-access technologies includecode division multiple access (CDMA) systems, time division multipleaccess (TDMA) systems, frequency division multiple access (FDMA)systems, orthogonal frequency division multiple access (OFDMA) systems,single-carrier frequency division multiple access (SC-FDMA) systems, andtime division synchronous code division multiple access (TD-SCDMA)systems.

These multiple access technologies have been adopted in varioustelecommunication standards to provide a common protocol that enablesdifferent wireless devices to communicate on a municipal, national,regional, and even global level. An example of an emergingtelecommunication standard is Long Term Evolution (LTE). LTE is a set ofenhancements to the Universal Mobile Telecommunications System (UMTS)mobile standard promulgated by Third Generation Partnership Project(3GPP). LTE is designed to better support mobile broadband Internetaccess by improving spectral efficiency, lowering costs, improvingservices, making use of new spectrum, and better integrating with otheropen standards using OFDMA on the downlink (DL), SC-FDMA on the uplink(UL), and multiple-input multiple-output (MIMO) antenna technology.However, as the demand for mobile broadband access continues toincrease, there exists a need for further improvements in LTEtechnology. Preferably, these improvements should be applicable to othermulti-access technologies and the telecommunication standards thatemploy these technologies.

SUMMARY

In an aspect of the disclosure, a method, a computer program product,and an apparatus are provided. In an aspect, an apparatus is broadcast afirst signal including a first expression code in association withavailability of location information of a UE. The apparatus is todetermine the location information associated with the UE. The apparatusis to determine a second expression code associated with the locationinformation. The apparatus is to broadcast a second signal including thesecond expression code and the location information, independent of thefirst signal. In an aspect, the apparatus may be a user equipment.

In an aspect of the disclosure, a method, a computer program product,and an apparatus are provided. In an aspect, the apparatus is toreceive, from a second UE, a first signal including a first expressioncode associated with the second UE. The apparatus is to determine asecond expression code based on the received first signal. The apparatusis to receive a second signal from the second UE, the second signalincluding the second expression code. The apparatus is to determine alocation of the second UE based on the received second signal and thedetermined second expression code. In an aspect, the apparatus may be auser equipment.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating an example of a network architecture.

FIG. 2 is a diagram illustrating an example of an access network.

FIG. 3 is a diagram illustrating an example of a DL frame structure inLTE.

FIG. 4 is a diagram illustrating an example of an UL frame structure inLTE.

FIG. 5 is a diagram illustrating an example of a radio protocolarchitecture for the user and control planes.

FIG. 6 is a diagram illustrating an example of an evolved Node B anduser equipment in an access network.

FIG. 7 is a diagram of a device-to-device communications system.

FIG. 8 is a diagram illustrating a mobile network.

FIG. 9 is a diagram illustrating a mobile network.

FIG. 10 is diagram illustrating an open location discovery procedure ina network.

FIG. 11 is diagram illustrating an open location discovery procedure ina network.

FIG. 12 is diagram illustrating a restricted location discoveryprocedure in a network.

FIG. 13 is a diagram illustrating an exemplary over-the-air resourceallocation scheme.

FIG. 14 is a diagram illustrating ProSe application code formats.

FIG. 15 is a diagram illustrating a format for transmission of multipleProSe application codes by a device in a single discovery resource.

FIG. 16 is a diagram illustrating code linking in accordance withvarious aspects of the disclosure.

FIG. 17 is a diagram illustrating device discovery in a network inaccordance with various aspects of the present disclosure.

FIGS. 18A and 18B are diagrams illustrating device discovery in anetwork in accordance with various aspects of the present disclosure.

FIG. 19 is a diagram illustrating device discovery in a network inaccordance with various aspects of the present disclosure.

FIG. 20 is a diagram illustrating metadata management in accordance withvarious aspects of the disclosure.

FIG. 21 is a diagram illustrating a communication flow in accordancewith various aspects of the disclosure.

FIG. 22 is a diagram illustrating an exemplary network.

FIG. 23 is a diagram illustrating a communication flow in accordancewith various aspects of the disclosure.

FIG. 24 is a flow chart of a method of communication.

FIG. 25 is a flow chart of a method of wireless communication

FIG. 26 is a flow chart of a method of wireless communication.

FIG. 27 is a flow chart of a method of wireless communication.

FIG. 28 is a flow chart of a method of wireless communication.

FIG. 29 is a flow chart of a method of wireless communication.

FIG. 30 is a conceptual data flow diagram illustrating the data flowbetween different modules/means/components in an exemplary apparatus.

FIG. 31 is a diagram illustrating an example of a hardwareimplementation for an apparatus employing a processing system.

FIG. 32 is a conceptual data flow diagram illustrating the data flowbetween different modules/means/components in an exemplary apparatus.

FIG. 33 is a diagram illustrating an example of a hardwareimplementation for an apparatus employing a processing system.

FIG. 34 is a conceptual data flow diagram illustrating the data flowbetween different modules/means/components in an exemplary apparatus.

FIG. 35 is a diagram illustrating an example of a hardwareimplementation for an apparatus employing a processing system.

FIG. 36 is a diagram illustrating device discovery in a mobile network.

FIG. 37 is a diagram illustrating another aspect of device discovery ina mobile network.

FIGS. 38A and 38B are diagrams illustrating generation of expressioncodes for device discovery in a mobile network.

FIG. 39 is a flow diagram of a method of wireless communication.

FIG. 40 is a flow diagram of a method of wireless communication.

FIG. 41 is a conceptual data flow diagram illustrating the data flowbetween different modules/means/components in an exemplary apparatus.

FIG. 42 is a diagram illustrating an example of a hardwareimplementation for an apparatus employing a processing system.

FIG. 43 is a conceptual data flow diagram illustrating another aspect ofdata flow between different modules/means/components in an exemplaryapparatus.

FIG. 44 is a diagram illustrating another aspect of a hardwareimplementation for an apparatus employing a processing system.

DETAILED DESCRIPTION

The detailed description set forth below in connection with the appendeddrawings is intended as a description of various configurations and isnot intended to represent the only configurations in which the conceptsdescribed herein may be practiced. The detailed description includesspecific details for the purpose of providing a thorough understandingof various concepts. However, it will be apparent to those skilled inthe art that these concepts may be practiced without these specificdetails. In some instances, well known structures and components areshown in block diagram form in order to avoid obscuring such concepts.

Several aspects of telecommunication systems will now be presented withreference to various apparatus and methods. These apparatus and methodswill be described in the following detailed description and illustratedin the accompanying drawings by various blocks, modules, components,circuits, operations, processes, algorithms, etc. (collectively referredto as “elements”). These elements may be implemented using electronichardware, computer software, or any combination thereof. Whether suchelements are implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem.

By way of example, an element, or any portion of an element, or anycombination of elements may be implemented with a “processing system”that includes one or more processors. Examples of processors includemicroprocessors, microcontrollers, digital signal processors (DSPs),field programmable gate arrays (FPGAs), programmable logic devices(PLDs), state machines, gated logic, discrete hardware circuits, andother suitable hardware configured to perform the various functionalitydescribed throughout this disclosure. One or more processors in theprocessing system may execute software. Software shall be construedbroadly to mean instructions, instruction sets, code, code segments,program code, programs, subprograms, software components, applications,software applications, software packages, routines, subroutines,objects, executables, threads of execution, procedures, functions, etc.,whether referred to as software, firmware, middleware, microcode,hardware description language, or otherwise.

Accordingly, in one or more exemplary embodiments, the functionsdescribed may be implemented in hardware, software, firmware, or anycombination thereof. If implemented in software, the functions may bestored on or encoded as one or more instructions or code on acomputer-readable medium. Computer-readable media includes computerstorage media. Storage media may be any available media that can beaccessed by a computer. By way of example, and not limitation, suchcomputer-readable media can include a random-access memory (RAM), aread-only memory (ROM), an electrically erasable programmable ROM(EEPROM), compact disk ROM (CD-ROM) or other optical disk storage,magnetic disk storage or other magnetic storage devices, combinations ofthe aforementioned types of computer-readable media, or any other mediumthat can be used to store computer executable code in the form ofinstructions or data structures that can be accessed by a computer.

FIG. 1 is a diagram illustrating an LTE network architecture 100. TheLTE network architecture 100 may be referred to as an Evolved PacketSystem (EPS) 100. The EPS 100 may include one or more user equipment(UE) 102, an Evolved UMTS Terrestrial Radio Access Network (E-UTRAN)104, an Evolved Packet Core (EPC) 110, and an Operator's InternetProtocol (IP) Services 122. The EPS can interconnect with other accessnetworks, but for simplicity those entities/interfaces are not shown. Asshown, the EPS provides packet-switched services, however, as thoseskilled in the art will readily appreciate, the various conceptspresented throughout this disclosure may be extended to networksproviding circuit-switched services.

The E-UTRAN includes the evolved Node B (eNB) 106 and other eNBs 108,and may include a Multicast Coordination Entity (MCE) 128. The eNB 106provides user and control planes protocol terminations toward the UE102. The eNB 106 may be connected to the other eNBs 108 via a backhaul(e.g., an X2 interface). The MCE 128 allocates time/frequency radioresources for evolved Multimedia Broadcast Multicast Service (MBMS)(eMBMS), and determines the radio configuration (e.g., a modulation andcoding scheme (MCS)) for the eMBMS. The MCE 128 may be a separate entityor part of the eNB 106. The eNB 106 may also be referred to as a basestation, a Node B, an access point, a base transceiver station, a radiobase station, a radio transceiver, a transceiver function, a basicservice set (BSS), an extended service set (ESS), or some other suitableterminology. The eNB 106 provides an access point to the EPC 110 for aUE 102. Examples of UEs 102 include a cellular phone, a smart phone, asession initiation protocol (SIP) phone, a laptop, a personal digitalassistant (PDA), a satellite radio, a global positioning system, amultimedia device, a video device, a digital audio player (e.g., MP3player), a camera, a game console, a tablet, or any other similarfunctioning device. The UE 102 may also be referred to by those skilledin the art as a mobile station, a subscriber station, a mobile unit, asubscriber unit, a wireless unit, a remote unit, a mobile device, awireless device, a wireless communications device, a remote device, amobile subscriber station, an access terminal, a mobile terminal, awireless terminal, a remote terminal, a handset, a user agent, a mobileclient, a client, or some other suitable terminology.

The eNB 106 is connected to the EPC 110. The EPC 110 may include aMobility Management Entity (MME) 112, a Home Subscriber Server (HSS)120, other MMEs 114, a Serving Gateway 116, a Multimedia BroadcastMulticast Service (MBMS) Gateway 124, a Broadcast Multicast ServiceCenter (BM-SC) 126, and a Packet Data Network (PDN) Gateway 118. The MME112 is the control node that processes the signaling between the UE 102and the EPC 110. Generally, the MME 112 provides bearer and connectionmanagement. All user IP packets are transferred through the ServingGateway 116, which itself is connected to the PDN Gateway 118. The PDNGateway 118 provides UE IP address allocation as well as otherfunctions. The PDN Gateway 118 and the BM-SC 126 are connected to the IPServices 122. The IP Services 122 may include the Internet, an intranet,an IP Multimedia Subsystem (IMS), a PS Streaming Service (PSS), and/orother IP services. The BM-SC 126 may provide functions for MBMS userservice provisioning and delivery. The BM-SC 126 may serve as an entrypoint for content provider MBMS transmission, may be used to authorizeand initiate MBMS Bearer Services within a public land mobile network(PLMN), and may be used to schedule and deliver MBMS transmissions. TheMBMS Gateway 124 may be used to distribute MBMS traffic to the eNBs(e.g., 106, 108) belonging to a Multicast Broadcast Single FrequencyNetwork (MBSFN) area broadcasting a particular service, and may beresponsible for session management (start/stop) and for collecting eMBMSrelated charging information.

FIG. 2 is a diagram illustrating an example of an access network 200 inan LTE network architecture. In this example, the access network 200 isdivided into a number of cellular regions (cells) 202. One or more lowerpower class eNBs 208 may have cellular regions 210 that overlap with oneor more of the cells 202. The lower power class eNB 208 may be a femtocell (e.g., home eNB (HeNB)), pico cell, micro cell, or remote radiohead (RRH). The macro eNBs 204 are each assigned to a respective cell202 and are configured to provide an access point to the EPC 110 for allthe UEs 206 in the cells 202. There is no centralized controller in thisexample of an access network 200, but a centralized controller may beused in alternative configurations. The eNBs 204 are responsible for allradio related functions including radio bearer control, admissioncontrol, mobility control, scheduling, security, and connectivity to theserving gateway 116. An eNB may support one or multiple (e.g., three)cells (also referred to as a sectors). The term “cell” can refer to thesmallest coverage area of an eNB and/or an eNB subsystem serving aparticular coverage area. Further, the terms “eNB,” “base station,” and“cell” may be used interchangeably herein.

The modulation and multiple access scheme employed by the access network200 may vary depending on the particular telecommunications standardbeing deployed. In LTE applications, OFDM is used on the DL and SC-FDMAis used on the UL to support both frequency division duplex (FDD) andtime division duplex (TDD). As those skilled in the art will readilyappreciate from the detailed description to follow, the various conceptspresented herein are well suited for LTE applications. However, theseconcepts may be readily extended to other telecommunication standardsemploying other modulation and multiple access techniques. By way ofexample, these concepts may be extended to Evolution-Data Optimized(EV-DO) or Ultra Mobile Broadband (UMB). EV-DO and UMB are air interfacestandards promulgated by the 3rd Generation Partnership Project 2(3GPP2) as part of the CDMA2000 family of standards and employs CDMA toprovide broadband Internet access to mobile stations. These concepts mayalso be extended to Universal Terrestrial Radio Access (UTRA) employingWideband-CDMA (W-CDMA) and other variants of CDMA, such as TD-SCDMA;Global System for Mobile Communications (GSM) employing TDMA; andEvolved UTRA (E-UTRA), IEEE 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE802.20, and Flash-OFDM employing OFDMA. UTRA, E-UTRA, UMTS, LTE and GSMare described in documents from the 3GPP organization. CDMA2000 and UMBare described in documents from the 3GPP2 organization. The actualwireless communication standard and the multiple access technologyemployed will depend on the specific application and the overall designconstraints imposed on the system.

The eNBs 204 may have multiple antennas supporting MIMO technology. Theuse of MIMO technology enables the eNBs 204 to exploit the spatialdomain to support spatial multiplexing, beamforming, and transmitdiversity. Spatial multiplexing may be used to transmit differentstreams of data simultaneously on the same frequency. The data streamsmay be transmitted to a single UE 206 to increase the data rate or tomultiple UEs 206 to increase the overall system capacity. This isachieved by spatially precoding each data stream (i.e., applying ascaling of an amplitude and a phase) and then transmitting eachspatially precoded stream through multiple transmit antennas on the DL.The spatially precoded data streams arrive at the UE(s) 206 withdifferent spatial signatures, which enables each of the UE(s) 206 torecover the one or more data streams destined for that UE 206. On theUL, each UE 206 transmits a spatially precoded data stream, whichenables the eNB 204 to identify the source of each spatially precodeddata stream.

Spatial multiplexing is generally used when channel conditions are good.When channel conditions are less favorable, beamforming may be used tofocus the transmission energy in one or more directions. This may beachieved by spatially precoding the data for transmission throughmultiple antennas. To achieve good coverage at the edges of the cell, asingle stream beamforming transmission may be used in combination withtransmit diversity.

In the detailed description that follows, various aspects of an accessnetwork will be described with reference to a MIMO system supportingOFDM on the DL. OFDM is a spread-spectrum technique that modulates dataover a number of subcarriers within an OFDM symbol. The subcarriers arespaced apart at precise frequencies. The spacing provides“orthogonality” that enables a receiver to recover the data from thesubcarriers. In the time domain, a guard interval (e.g., cyclic prefix)may be added to each OFDM symbol to combat inter-OFDM-symbolinterference. The UL may use SC-FDMA in the form of a DFT-spread OFDMsignal to compensate for high peak-to-average power ratio (PAPR).

FIG. 3 is a diagram 300 illustrating an example of a DL frame structurein LTE. A frame (10 ms) may be divided into 10 equally sized subframes.Each subframe may include two consecutive time slots. A resource gridmay be used to represent two time slots, each time slot including aresource block. The resource grid is divided into multiple resourceelements. In LTE, for a normal cyclic prefix, a resource block contains12 consecutive subcarriers in the frequency domain and 7 consecutiveOFDM symbols in the time domain, for a total of 84 resource elements.For an extended cyclic prefix, a resource block contains 12 consecutivesubcarriers in the frequency domain and 6 consecutive OFDM symbols inthe time domain, for a total of 72 resource elements. Some of theresource elements, indicated as R 302, 304, include DL reference signals(DL-RS). The DL-RS include Cell-specific RS (CRS) (also sometimes calledcommon RS) 302 and UE-specific RS (UE-RS) 304. UE-RS 304 are transmittedon the resource blocks upon which the corresponding physical DL sharedchannel (PDSCH) is mapped. The number of bits carried by each resourceelement depends on the modulation scheme. Thus, the more resource blocksthat a UE receives and the higher the modulation scheme, the higher thedata rate for the UE.

FIG. 4 is a diagram 400 illustrating an example of an UL frame structurein LTE. The available resource blocks for the UL may be partitioned intoa data section and a control section. The control section may be formedat the two edges of the system bandwidth and may have a configurablesize. The resource blocks in the control section may be assigned to UEsfor transmission of control information. The data section may includeall resource blocks not included in the control section. The UL framestructure results in the data section including contiguous subcarriers,which may allow a single UE to be assigned all of the contiguoussubcarriers in the data section.

A UE may be assigned resource blocks 410 a, 410 b in the control sectionto transmit control information to an eNB. The UE may also be assignedresource blocks 420 a, 420 b in the data section to transmit data to theeNB. The UE may transmit control information in a physical UL controlchannel (PUCCH) on the assigned resource blocks in the control section.The UE may transmit data or both data and control information in aphysical UL shared channel (PUSCH) on the assigned resource blocks inthe data section. A UL transmission may span both slots of a subframeand may hop across frequency.

A set of resource blocks may be used to perform initial system accessand achieve UL synchronization in a physical random access channel(PRACH) 430. The PRACH 430 carries a random sequence and cannot carryany UL data/signaling. Each random access preamble occupies a bandwidthcorresponding to six consecutive resource blocks. The starting frequencyis specified by the network. That is, the transmission of the randomaccess preamble is restricted to certain time and frequency resources.There is no frequency hopping for the PRACH. The PRACH attempt iscarried in a single subframe (1 ms) or in a sequence of few contiguoussubframes and a UE can make a single PRACH attempt per frame (10 ms).

FIG. 5 is a diagram 500 illustrating an example of a radio protocolarchitecture for the user and control planes in LTE. The radio protocolarchitecture for the UE and the eNB is shown with three layers: Layer 1,Layer 2, and Layer 3. Layer 1 (L1 layer) is the lowest layer andimplements various physical layer signal processing functions. The L1layer will be referred to herein as the physical layer 506. Layer 2 (L2layer) 508 is above the physical layer 506 and is responsible for thelink between the UE and eNB over the physical layer 506.

In the user plane, the L2 layer 508 includes a media access control(MAC) sublayer 510, a radio link control (RLC) sublayer 512, and apacket data convergence protocol (PDCP) 514 sublayer, which areterminated at the eNB on the network side. Although not shown, the UEmay have several upper layers above the L2 layer 508 including a networklayer (e.g., IP layer) that is terminated at the PDN gateway 118 on thenetwork side, and an application layer that is terminated at the otherend of the connection (e.g., far end UE, server, etc.).

The PDCP sublayer 514 provides multiplexing between different radiobearers and logical channels. The PDCP sublayer 514 also provides headercompression for upper layer data packets to reduce radio transmissionoverhead, security by ciphering the data packets, and handover supportfor UEs between eNBs. The RLC sublayer 512 provides segmentation andreassembly of upper layer data packets, retransmission of lost datapackets, and reordering of data packets to compensate for out-of-orderreception due to hybrid automatic repeat request (HARQ). The MACsublayer 510 provides multiplexing between logical and transportchannels. The MAC sublayer 510 is also responsible for allocating thevarious radio resources (e.g., resource blocks) in one cell among theUEs. The MAC sublayer 510 is also responsible for HARQ operations.

In the control plane, the radio protocol architecture for the UE and eNBis substantially the same for the physical layer 506 and the L2 layer508 with the exception that there is no header compression function forthe control plane. The control plane also includes a radio resourcecontrol (RRC) sublayer 516 in Layer 3 (L3 layer). The RRC sublayer 516is responsible for obtaining radio resources (e.g., radio bearers) andfor configuring the lower layers using RRC signaling between the eNB andthe UE.

FIG. 6 is a block diagram of an eNB 610 in communication with a UE 650in an access network. In the DL, upper layer packets from the corenetwork are provided to a controller/processor 675. Thecontroller/processor 675 implements the functionality of the L2 layer.In the DL, the controller/processor 675 provides header compression,ciphering, packet segmentation and reordering, multiplexing betweenlogical and transport channels, and radio resource allocations to the UE650 based on various priority metrics. The controller/processor 675 isalso responsible for HARQ operations, retransmission of lost packets,and signaling to the UE 650.

The transmit (TX) processor 616 implements various signal processingfunctions for the L1 layer (i.e., physical layer). The signal processingfunctions include coding and interleaving to facilitate forward errorcorrection (FEC) at the UE 650 and mapping to signal constellationsbased on various modulation schemes (e.g., binary phase-shift keying(BPSK), quadrature phase-shift keying (QPSK), M-phase-shift keying(M-PSK), M-quadrature amplitude modulation (M-QAM)). The coded andmodulated symbols are then split into parallel streams. Each stream isthen mapped to an OFDM subcarrier, multiplexed with a reference signal(e.g., pilot) in the time and/or frequency domain, and then combinedtogether using an Inverse Fast Fourier Transform (IFFT) to produce aphysical channel carrying a time domain OFDM symbol stream. The OFDMstream is spatially precoded to produce multiple spatial streams.Channel estimates from a channel estimator 674 may be used to determinethe coding and modulation scheme, as well as for spatial processing. Thechannel estimate may be derived from a reference signal and/or channelcondition feedback transmitted by the UE 650. Each spatial stream maythen be provided to a different antenna 620 via a separate transmitter618TX. Each transmitter 618TX may modulate an RF carrier with arespective spatial stream for transmission.

At the UE 650, each receiver 654RX receives a signal through itsrespective antenna 652. Each receiver 654RX recovers informationmodulated onto an RF carrier and provides the information to the receive(RX) processor 656. The RX processor 656 implements various signalprocessing functions of the L1 layer. The RX processor 656 may performspatial processing on the information to recover any spatial streamsdestined for the UE 650. If multiple spatial streams are destined forthe UE 650, they may be combined by the RX processor 656 into a singleOFDM symbol stream. The RX processor 656 then converts the OFDM symbolstream from the time-domain to the frequency domain using a Fast FourierTransform (FFT). The frequency domain signal includes a separate OFDMsymbol stream for each subcarrier of the OFDM signal. The symbols oneach subcarrier, and the reference signal, are recovered and demodulatedby determining the most likely signal constellation points transmittedby the eNB 610. These soft decisions may be based on channel estimatescomputed by the channel estimator 658. The soft decisions are thendecoded and deinterleaved to recover the data and control signals thatwere originally transmitted by the eNB 610 on the physical channel. Thedata and control signals are then provided to the controller/processor659.

The controller/processor 659 implements the L2 layer. Thecontroller/processor can be associated with a memory 660 that storesprogram codes and data. The memory 660 may be referred to as acomputer-readable medium. In the UL, the controller/processor 659provides demultiplexing between transport and logical channels, packetreassembly, deciphering, header decompression, control signal processingto recover upper layer packets from the core network. The upper layerpackets are then provided to a data sink 662, which represents all theprotocol layers above the L2 layer. Various control signals may also beprovided to the data sink 662 for L3 processing. Thecontroller/processor 659 is also responsible for error detection usingan acknowledgement (ACK) and/or negative acknowledgement (NACK) protocolto support HARQ operations.

In the UL, a data source 667 is used to provide upper layer packets tothe controller/processor 659. The data source 667 represents allprotocol layers above the L2 layer. Similar to the functionalitydescribed in connection with the DL transmission by the eNB 610, thecontroller/processor 659 implements the L2 layer for the user plane andthe control plane by providing header compression, ciphering, packetsegmentation and reordering, and multiplexing between logical andtransport channels based on radio resource allocations by the eNB 610.The controller/processor 659 is also responsible for HARQ operations,retransmission of lost packets, and signaling to the eNB 610.

Channel estimates derived by a channel estimator 658 from a referencesignal or feedback transmitted by the eNB 610 may be used by the TXprocessor 668 to select the appropriate coding and modulation schemes,and to facilitate spatial processing. The spatial streams generated bythe TX processor 668 may be provided to different antenna 652 viaseparate transmitters 654TX. Each transmitter 654TX may modulate an RFcarrier with a respective spatial stream for transmission.

The UL transmission is processed at the eNB 610 in a manner similar tothat described in connection with the receiver function at the UE 650.Each receiver 618RX receives a signal through its respective antenna620. Each receiver 618RX recovers information modulated onto an RFcarrier and provides the information to a RX processor 670. The RXprocessor 670 may implement the L1 layer.

The controller/processor 675 implements the L2 layer. Thecontroller/processor 675 can be associated with a memory 676 that storesprogram codes and data. The memory 676 may be referred to as acomputer-readable medium. In the UL, the controller/processor 675provides demultiplexing between transport and logical channels, packetreassembly, deciphering, header decompression, control signal processingto recover upper layer packets from the UE 650. Upper layer packets fromthe controller/processor 675 may be provided to the core network. Thecontroller/processor 675 is also responsible for error detection usingan ACK and/or NACK protocol to support HARQ operations.

FIG. 7 is a diagram of a device-to-device communications system 700. Thedevice-to-device communications system 700 includes a plurality ofwireless devices 704, 706, 708, 710. The device-to-device communicationssystem 700 may overlap with a cellular communications system, such asfor example, a wireless wide area network (WWAN). Some of the wirelessdevices 704, 706, 708, 710 may communicate together in device-to-devicecommunication using the DL/UL WWAN spectrum, some may communicate withthe base station 702, and some may do both. For example, as shown inFIG. 7, the wireless devices 708, 710 are in device-to-devicecommunication and the wireless devices 704, 706 are in device-to-devicecommunication. The wireless devices 704, 706 are also communicating withthe base station 702.

The exemplary methods and apparatuses discussed infra are applicable toany of a variety of wireless device-to-device communications systems,such as for example, a wireless device-to-device communication systembased on FlashLinQ, WiMedia, Bluetooth, ZigBee, or Wi-Fi based on theIEEE 802.11 standard. To simplify the discussion, the exemplary methodsand apparatus are discussed within the context of LTE. However, one ofordinary skill in the art would understand that the exemplary methodsand apparatuses are applicable more generally to a variety of otherwireless device-to-device communication systems.

LTE-Direct or proximity service (ProSe) discovery is a process by whichmobile devices periodically broadcast short bit strings (e.g., referredto as “ProSe application codes,” or simply “expressions codes”)over-the-air, while other mobile devices in proximity attempt to detectthe codes in an efficient manner. For example, the other mobile devicesmay monitor for codes and filter only the codes that are of interest tothe applications operating in those mobile devices. A ProSe code isassociated with an application-layer (e.g., human-readable) namereferred to as a ProSe Application Name. The ProSe Application Name maybe a component of a ProSe Application Identifier (PAI). An applicationpublishing a ProSe Application Name results in the modem announcing thecorresponding code, while an application subscribing to a (set of) ProSeApplication Name(s) results in the modem monitoring for thecorresponding code(s). Conventional LTE-Direct discovery procedures,while battery-efficient and privacy-sensitive, do not provide anaccurate location of a discovered mobile device. For example, a mobiledevice may discover another mobile device and only know that thediscovered mobile device is somewhere in proximity, which may be withina 500 m radius. It should be noted that discovery is uni-directional,such that the discovered mobile device does not know whether or when ithas been discovered by one or more mobile devices in proximity.

For mobile devices that wish to make their location known, one option isto always (or at least always when moving) broadcast some succinctlocation information along with a code or expression used by othermobile devices for discovery. However, this approach may waste resources(e.g., over-the-air discovery resources) if there is no other mobiledevice in proximity actually interested in that location information.

FIG. 8 is a diagram illustrating a mobile network 800. In an aspect, themobile network 800 includes a number of users with proximity serviceenabled mobile devices. For example, one or more mobile devices in FIG.8 may periodically broadcast an announcement (e.g., announcement 802 orannouncement 803) that enables discovery by another mobile device (e.g.,mobile device 804). In such example, the mobile device 804 may discoveranother mobile device in proximity and which offers a service or contentof interest. However, the mobile device 804 performing discovery may notbe able to accurately determine the locations of the discovered mobiledevices.

FIG. 9 is a diagram illustrating a mobile network 900. As shown in FIG.9, mobile network 900 includes a mobile device 902, an applicationserver 904, a ProSe Function 906, and a location server 908. As furthershown in FIG. 9, the mobile device 902 includes an application 910 and amodem 912. In the present disclosure, the term ProSe Function may referto a logical function for proximity services implemented by a server orother network entity.

In an aspect, the application server 904 may configure applications withProSe application names and/or may store the metadata (e.g., a set ofauxiliary information) for each ProSe application name. The ProSeFunction 906 may be configured to allocate ProSe application codes, tolook up ProSe application codes, and/or to store metadata for each ProSeapplication code. The metadata is associated with both the ProSeapplication name and the allocated ProSe application code. The locationserver 908 may be configured to determine accurate location informationfor each mobile device.

In an aspect, as shown in FIG. 9, when the mobile device 902 isoperating as a device discoverer, the discovery service layer 914 maysend a ProSe application code received from a discovered mobile deviceto the ProSe Function 906 via data path 920. The ProSe Function 906 maylook up the ProSe application code to determine the ProSe applicationname that corresponds to that code. The ProSe Function 906 may then sendthe ProSe application name to the mobile device 902 via data path 920.When the mobile device 902 is operating as an announcer/discoveree, thediscovery service layer 914 may place accurate location information ofthe mobile device 902 into the location server 908 via data path 922. Ingeneral, depending on the role of the mobile device 902, as furthershown in FIG. 9, the application 910 may communicate with applicationserver 904 via data path 918 to receive configuration information tosubscribe to ProSe Application names of interest or to publish ProSeApplication Names. These operations result in mobile devices eitherbroadcasting a code or monitoring for a set of codes. When a mobiledevice finds some codes that match its interest, the mobile device maysend those codes to the network to obtain the associated ProSeApplication Names.

FIG. 10 is diagram illustrating an open location discovery procedure ina network 1000. Network 1000 includes UE_A 1002, UE_B 1004, UE_X 1006,UE_Y 1008, UE_Z 1010, ProSe Function 1012, and location server 1014.

As shown in FIG. 10, UE_A 1002, UE_X 1006, UE_Y 1008, and/or UE_Z 1010may each periodically broadcast a unique code (e.g., a short bit string)over-the-air. In an aspect, the unique code may be a ProSe applicationcode associated with a UE. For example, as shown in FIG. 10, UE_A 1002,UE_X 1006, UE_Y 1008, and UE_Z 1010 may respectively broadcast ProSeapplication codes “Code A,” “Code X,” “Code Y,” and “Code Z.” UE_B 1004may discover UEs of interest by listening to the broadcasted ProSeapplication codes and filtering the ProSe application codes of interestto the UE_B 1004. For example, UE_B 1004 may determine that Code A is ofinterest to the UE_B 1004. In such example, UE_A 1002 may be a mobiledog grooming service looking for business and may be configured toprovide its accurate location to any interested UE.

In an aspect, the UE_B 1004 may send a message 1016 to the ProSeFunction 1012. In such aspect, the message 1016 may include a requestfor information associated with Code A and a request for locationinformation associated with the UE (e.g., UE_A 1002) that broadcastedCode A. In an aspect, the message 1016 may be a match report messagethat may be sent by a UE (e.g., UE_B 1004) to a ProSe Function in orderfor the UE to obtain the application-layer meaning (e.g., a ProSeApplication Name) of the discovered code (e.g., Code A). The ProSeFunction 1012 may determine whether UE_B 1004 is authorized to receiveProSe services and/or the requested location information. If UE_B 1004is authorized, the ProSe Function 1012 may trigger the UE_A 1002 to takelocation measurements and to report the measurements to the ProSeFunction 1012. For example, the ProSe Function 1012 may trigger the UE_A1002 by sending a request 1018 to the location server 1014 for therequested location information. In an aspect, the location server 1014may be an LTE location server. The location server 1014 may then send amessage 1020 to the UE_A 1002 using LTE protocols for locationinformation, such as SUPL (Secure User Plane Location). The UE_A 1002may upload the requested location information 1024 to the locationserver 1014 in response to the message 1020. For example, the message1020 may be a push notification.

In an aspect, if the UE (e.g., UE_A 1002) discovered by the UE_B 1004 isno longer of interest to the UE_B 1004, the UE_B 1004 may send a messageto the ProSe Function 1012 indicating that the discovered UE (e.g., UE_A1002) is no longer of interest to the UE_B 1004. The ProSe Function 1012may forward the message to the location server 1014. The location server1014 may then send a message (e.g., a push notification) to the UE_A1002 that causes the UE_A 1002 to no longer upload the locationinformation to the location server 1014. However, it should beunderstood that the UE_A 1002 may still continue to upload its locationinformation for other UEs (e.g., UEs different from UE_B 1004) that havediscovered UE_A 1002 and which are interested in the location of UE_A1002.

In another aspect, a UE (e.g., UE_A 1002) discovered by the UE_B 1004may implement a timer such that the UE uploads its location informationto the location server 1014 while the timer is running. If the UE_B 1004does not renew its interest in the location of the discovered UE priorto expiration of the timer, the discovered UE may no longer upload thelocation information to the location server 1014. It should beunderstood, however, that the UE (e.g., UE_A 1002) discovered by UE_B1004 may still continue to upload its location information for other UEs(e.g., UEs different from UE_B 1004) that have discovered the UE andwhich are interested in the location of UE if the UE_B 1004 has notrenewed its interest in the location of the discovered UE prior toexpiration of the timer.

The location server 1014 may send a message 1021 that includes thelocation information to the ProSe Function 1012. The ProSe Function 1012may then send a message 1022 to UE_B 1004 including informationassociated with Code A (e.g., a ProSe Application Name, such as“Expression A”) and the location information (e.g., LTE-based location)associated with UE_A 1002. In an aspect, the message 1022 may be a matchreport acknowledgment message.

FIG. 11 is diagram illustrating an open location discovery procedure ina network 1100. Network 1100 includes UE_A 1102, UE_B 1104, UE_X 1106,UE_Y 1108, UE_Z 1110, and ProSe Function 1112.

As shown in FIG. 11, UE_A 1102, UE_X 1106, UE_Y 1108, and/or UE_Z 1110may each periodically broadcast a unique code (e.g., a short bit string)over-the-air. In an aspect, the unique code may be a ProSe applicationcode associated with a UE. For example, as shown in FIG. 11, UE_A 1102,UE_X 1106, UE_Y 1108, and UE_Z 1110 may respectively broadcast ProSeapplication codes “Code A,” “Code X,” “Code Y,” and “Code Z.” The UE_B1104 may discover UEs of interest by listening to the broadcasted ProSeapplication codes and filtering the ProSe application codes of interestto the UE_B 1104. For example, UE_B 1104 may determine that Code A is ofinterest to the UE_B 1104. In such example, UE_A 1102 may be a mobiledog grooming service looking for business and may be configured toprovide its accurate location to any interested UE.

In an aspect, the UE_B 1104 may send a message 1114 to the ProSeFunction 1112. In such aspect, the message 1114 may include a requestfor information associated with Code A and a request for locationinformation associated with the UE (e.g., UE_A 1002) that broadcastedCode A. In an aspect, the message 1114 may be a match report messagethat may be sent by a UE (e.g., UE_B 1104) to a ProSe Function in orderfor the UE to obtain the application-layer meaning (e.g., a ProSeApplication Name) of the discovered code (e.g., Code A). The ProSeFunction 1112 may determine whether UE_B 1104 is authorized to receiveProSe services and/or the requested location information. If UE_B 1104is authorized, the ProSe Function 1112 may trigger the UE_A 1102 toinclude location information in its metadata or to update its metadatawith location information. For example, the ProSe Function 1112 maytrigger the UE_A 1102 by sending a message 1116 to the UE_A 1102 usingLTE protocols requesting the UE_A 1102 to update metadata of the UE_A1102 with current location information. For example, the message 1116may be a push notification. In an aspect, the UE_A 1102 may determineits location information via an operating system (e.g., Android) makinguse of a location obtaining feature based on a Global Positioning System(GPS) (or GLONASS, or Beidou, or WiFi) receiver.

In an aspect, the UE_A 1102 may send updated metadata 1118 to the ProSeFunction 1112. Yet in another aspect, the UE_A 1102 may send updatedmetadata 1118 to the ProSe Function via an Application Server as in FIG.9. After the ProSe Function 1112 obtains the metadata, the ProSeFunction 1112 may send a message 1120 to UE_B 1004 including informationassociated with Code A (e.g., a ProSe Application Name, such as“Expression A”) and metadata from the UE_A 1102. In an aspect, themetadata in the message 1120 may include the location information (e.g.,GPS data or coordinates) associated with UE_A 1102. In another aspect,the metadata in the message 1120 may not include the locationinformation associated with UE_A 1102 and may include an indication thata trigger has been sent to UE_A 1102 for publishing/broadcasting thelocation information over the air. In such aspect, the UE_B 1104 maylisten for the location information of the UE_A 1102 along with thecodes (e.g., Code A) announced by UE_A 1102. In an aspect, the message1120 may be a match report acknowledgment message. In an aspect, thematch report message may contain location information, or, if the matchreport is too long to delay the match report acknowledgment, the matchreport acknowledgement without any location information. In an aspect,the ProSe Function 1112 may send a proximity alert message to the UE_B1104, indicating that UE_A 1102 is interested in the services of theUE_B 1104 and is located in proximity.

FIG. 12 is a diagram illustrating a restricted location discoveryprocedure in a network 1200. Network 1200 includes UE_A 1202, UE_B 1204,UE_X 1206, UE_Y 1208, UE_Z 1210, and ProSe Function 1212.

As shown in FIG. 12, UE_A 1202, UE_X 1206, UE_Y 1208, and/or UE_Z 1210may each periodically broadcast a unique code (e.g., a short bit string)over-the-air. In an aspect, the unique code may be a ProSe applicationcode associated with a UE. For example, as shown in FIG. 12, UE_A 1202,UE_X 1206, UE_Y 1208, and UE_Z 1210 may respectively broadcast ProSeapplication codes “Code A,” “Code X,” “Code Y,” and “Code Z.” The UE_B1204 may discover UEs of interest by listening to the broadcasted ProSeapplication codes and filtering the ProSe application codes of interestto the UE_B 1204. For example, UE_B 1204 may determine that Code A is ofinterest to the UE_B 1204. In such example, UE_A 1202 may be a privateperson with a social networking identifier, and may be configured toprovide its accurate location to only a restricted set of pre-selectedUEs (e.g., close friends and selected family members).

In an aspect, the UE_B 1204 may send a message 1214 to the ProSeFunction 1212. In such aspect, the message 1214 may include a requestfor information associated with Code A and a request for locationinformation associated with the UE (e.g., UE_A 1202) that broadcastedCode A. In an aspect, the message 1214 may be a match report messagethat may be sent by a UE (e.g., UE_B 1204) to a ProSe Function in orderfor the UE to obtain the application-layer meaning (e.g., a ProSeApplication Name) of the discovered code (e.g., Code A). The ProSeFunction 1212 may determine whether UE_B 1204 is authorized to receiveProSe services and/or the requested location information (i.e., whetherUE_B 1204 is in the set of pre-selected UEs that UE_A 1202 authorized toget its accurate location information). If UE_B 1204 is authorized, theProSe Function 1212 may trigger the UE_A 1202 to determine its currentlocation and to report the location information over-the-air such thatonly the authorized UEs may obtain the location information, or toupdate its metadata. For example, the ProSe Function 1212 may triggerthe UE_A 1202 by sending a message 1216 to the UE_A 1202 including arequest to report location information of the UE_A 1202 and/or updatemetadata of the UE_A 1202 with the location information. For example,the message 1216 may be a push notification.

If the UE_A 1202 chooses to update the metadata of UE_A 1202, the UE_A1202 obtains the location of UE_A 1202 using standard non-LTE techniques(e.g., obtaining location information via a high level operating system(e.g., Android) using a GPS receiver as previously described) and sendsthe location information to the ProSe Function 1212. In such aspect, theProSe Function 1212 may send a message 1218 to the authorized UE_B 1204including information associated with Code A (e.g., a ProSe ApplicationName, such as “Expression A” in FIG. 12) with the metadata containingthe location information. For example, the ProSe Application Name may beconfigured to describe a restaurant. In such example, the ProSeApplication Name may be “ProSeApp.Food.Restaurants.Italian.” In anaspect, the ProSe Application Name may be preceded by a PLMN ID. In anaspect, the message 1218 may be a match report acknowledgment message.In an aspect, the match report acknowledgement may be delayed and onlysent when the LTE location is available at a LTE location server.

If the UE_A 1202 chooses to report its location informationover-the-air, the UE_A 1202 may start announcing its locationinformation along with Code A. In an aspect, the location informationannounced by the UE_A 1202 may be protected (e.g., encrypted) with asecurity key. In such aspect, the ProSe Function 1212 may include thesecurity key in the message 1218 sent to the authorized UE_B 1204. TheUE_B 1204 may use the security key to determine the obfuscated locationinformation received from the UE_A 1202. In another aspect, the locationinformation announced by the UE_A 1202 may not be protected with asecurity key. In such aspect, the UE_A 1202 may announce locationinformation of the UE_A 1202 along with a separate location-carryingcode. In such aspect, the ProSe Function 1212 may include thelocation-carrying code in the message 1218 sent to the authorized UE_B1204. The UE_B 1204 may monitor for this code and once found, use thiscode to retrieve the location information associated with the UE_A 1202.

Therefore, in the aspects described supra, a mobile device (e.g., mobiledevice UE_A 1002) may efficiently report its location information (e.g.,announce its location information in a broadcast or update its metadatato include location information) only when needed (e.g., when requestedby other devices duly authorized). Furthermore, it should be noted thatthe aspects described supra take into account any permissions foraccurate location much like permissions for discovery. For example, somemobile devices may not care about the identities of other mobile devicesrequesting their location information and, therefore, no permissionchecking may be required. As another example, some mobile devices maywish to grant permission for accessing accurate current location to onlycertain other mobile devices (e.g., to mobile devices in a subsetsmaller than the subset of mobile devices permitted to discover in thefirst place). For example, the ProSe Function may be configured toenforce such permissions based on input from an application server(ultimately from the user).

FIG. 13 is a diagram 1300 illustrating an exemplary over-the-airresource allocation scheme. FIG. 13 includes a set of resources 1302which are periodically allocated for device discovery and for a WAN. Forexample, during period 1308, device discovery period 1304 of the set ofresources 1302 is allocated for device discovery and a portion 1306 ofthe set of resources 1302 is allocated for a WAN. For example, theduration of period 1308 may be 10 seconds and the duration 1310 of thedevice discovery period 1304 allocated for device discovery may be 64ms. As shown in FIG. 13, each portion of the set of resources 1302allocated for device discovery may include a subset of resources. Forexample, device discovery period 1304 allocated for device discovery mayinclude subset of resources 1312. The subset of resources 1312 includesj subframes, where each of the j subframes includes i sets ofsubcarriers. In one example, subset of resources 1312 may include 64subframes (e.g., j=64), where each subframe includes 88 sets ofsubcarriers (i=88). In such example, each set of subcarriers may include12 contiguous subcarriers. In an aspect, a set of subcarriers in asubframe may be defined as a single discovery resource, such asdiscovery resource 1314.

In one example, and as shown FIG. 13, a device may use the discoveryresource 1314 in the subset of resources 1312 to transmit one ProSeapplication code (e.g., Code A 1316). In the present disclosure, theterm ProSe application code may also be referred to as an expressioncode. As another example, and as shown FIG. 13, the device may use asingle discovery resource 1322 in subset of resources 1320 of devicediscovery period 1318 to transmit two ProSe application codes (e.g.,Code B 1324 and Code C 1326). In an aspect, there may be no associationbetween the single discovery resources (e.g., single discovery resources1314 and 1322) in FIG. 13. In an aspect, multiple ProSe applicationcodes transmitted by a device in a single discovery resource may belinked by virtue of the shared single discovery resource. For example,the ProSe application codes Code B 1324 and Code C 1326 transmitted indiscovery resource 1322 may be linked.

In an aspect, a device may be allocated a single discovery resource(e.g., discovery resource 1314) for transmissions associated with devicediscovery. Although illustrated as allocated a single resource block, adevice may be allocated a plurality of resource blocks in associationwith device discovery. For example, a device may be allocated discoveryresources 1314, 1315 in association with device discovery. Accordingly,a device may use a plurality of resources 1314, 1315 to transmit a ProSeapplication code, an expression code, or another code of the presentdisclosure associated with device discovery.

FIG. 14 is a diagram illustrating ProSe application code formats. Asshown in FIG. 14, exemplary format 1410 includes a type 1412, anon-unique prefix 1414, and a unique discriminator 1416. In an aspectthe type 1412 may be an open discovery type (also referred to as publicdiscovery type), non-unique prefix 1414 may be a commercial branchcategory or subcategory, and unique discriminator 1416 may be a storeidentifier (ID). For example, the non-unique prefix 1414 and the uniquediscriminator 1416 may be a total of 160 bits. Exemplary format 1420includes a type 1422, a non-unique prefix 1424, and a non-unique suffix1426. In an aspect the type 1422 may be a restricted discovery type(also referred to as private discovery type), non-unique prefix 1424 maybe an obfuscated identifier of an application, and non-unique suffix1426 may be application specific information. For example, thenon-unique prefix 1424 and the non-unique suffix 1426 may be a total of160 bits. Exemplary format 1430 includes a type 1432, a unique prefix1434, and a non-unique suffix 1436. In an aspect, the type 1432 may be arestricted discovery type, unique prefix 1434 may be an obfuscatedidentifier of a user, and non-unique suffix 1436 may be applicationspecific information. For example, the unique prefix 1434 and thenon-unique suffix 1436 may be a total of 160 bits. Exemplary format 1440includes a type 1442 and a unique code 1444. For example, the uniquecode 1444 may be 160 bits.

FIG. 15 is a diagram illustrating a format 1500 for transmission ofmultiple ProSe application codes by a device. As shown in FIG. 15,format 1500 includes type 1502, primary code 1504, and secondary code1506. For example, with reference to FIG. 13, primary code 1504 may becode B 1324 and the secondary code 1506 may be code C 1326. In suchexample, the primary code 1504 and the secondary code 1506 may betransmitted in a single discovery resource, such as discovery resource1322. Therefore, in the aspect of FIG. 15, primary code 1504 and thesecondary code 1506 may be linked by virtue of the shared singlediscovery resource used for the transmission of the primary code 1504and the secondary code 1506.

In one scenario, a single discovery resource may not be able toaccommodate transmission of multiple codes (e.g., ProSe applicationcodes) by a device (e.g., when the total size of the multiple codes istoo large for transmission using a single discovery resource). In suchscenario, the multiple codes may need to be transmitted using multiplediscovery resources. In an aspect, the multiple codes transmitted usingmultiple discovery resources may be configured to be associated (e.g.,linked) to one another. For example, and as described infra with respectto FIG. 16, a primary code may be transmitted by a device in onediscovery resource and may be linked to a secondary code that istransmitted by the device in another discovery resource. For example,with reference to FIG. 13, primary code 1504 may be code A 1316 and thesecondary code 1506 may be code C 1326.

FIG. 16 is a diagram illustrating code linking in accordance withvarious aspects of the disclosure. As shown in FIG. 16, format 1600includes a type 1602 and primary code 1604. For example, the primarycode 1604 may be a first ProSe application code and may be 160 bits inlength. As another example, the primary code 1604 may be less than 160bits in length (e.g., 80 bits). In FIG. 16, format 1600 may be used by aUE to transmit the type 1602 and primary code 1604 in a first discoveryresource. As further shown in FIG. 16, format 1610 includes a type 1612,linking information 1614, and secondary code 1616. For example, thesecondary code 1616 may be a second ProSe application code. For example,linking information 1614 and the secondary code 1616 may be a total of160 bits. In such example, the secondary code 1616 linked to the primarycode 1604 is less than 160 bits. In FIG. 16, format 1610 may be used bythe UE to transmit the type 1612, the linking information 1614, and thesecondary code 1616 in a second discovery resource, where the firstdiscovery resource is different from the second discovery resource. Inan aspect, the linking information 1614 indicates that the secondarycode 1616 is linked to the primary code 1604 (meaning, for example, thatboth of these codes are being broadcasted by the same device). Forexample, the linking information 1614 may be a code and/or keyinformation sufficient to match and decode a private expression. Asanother example, the linking information 1614 may be the ProSeapplication name that would be used to uniquely match the secondaryexpression code.

In an aspect, a first UE (also referred to as a monitoring device ordiscovering device) may receive a primary code that is transmitted by asecond UE (also referred to as a transmitting device) using a firstdiscovery resource. The first UE may then determine whether the primarycode is associated with any secondary codes and/or secondaryexpressions.

In one aspect, and as described infra with respect to FIG. 17, the firstUE may send a request for information associated with a discoveredsecond UE to a network device. The network device may then send amessage that includes metadata associated with the primary code and alist of secondary codes and/or secondary expressions that the second UEis authorized to publish.

FIG. 17 is a diagram illustrating device discovery and code resolutionin a network 1700 in accordance with various aspects of the presentdisclosure. As shown in FIG. 17, network 1700 includes first UE 1704,second UE 1702, and a network device 1706. In an aspect, network device1706 may be a ProSe Function. The second UE 1702 may transmit code 11708, code 2 1710, and code 3 1711. In the present disclosure, the termcode is also referred to as an expression code or ProSe Applicationcode. In FIG. 17, code 1 1708 may be associated with a first expression(e.g., Expression 1), code 2 1710 may be associated with a secondexpression (e.g., Expression 2), and code 3 1711 may be associated witha third expression (e.g., Expression 3). For example, each expressionmay be a different ProSe application name. In the aspect of FIG. 17, thefirst UE 1704 may receive and decode the code 1 1708 (e.g., the primarycode). The first UE 1704 may find code 1 1708 of interest (e.g., code 11708 may match some criteria of the first UE 1704). The first UE 1704may successfully receive code 2 1710 and code 3 1711, but may not beable to immediately decode code 2 1710 and code 3 1711. Consequently,the first UE 1704 may not find code 2 1710 and code 3 1711 (e.g., thesecondary codes) to be of interest. The first UE 1704 may send a message1712 that includes a request for information associated with the code ofinterest (e.g., code 1 1708) to the network device 1706. In an aspect,the message 1712 may be a match report message that may be sent by a UE(e.g., the first UE 1704) to a ProSe Function in order for the UE toobtain the application-layer meaning (e.g., a ProSe Application Name) ofthe discovered code (e.g., code 1 1708), unless already known from aprevious match report. The network device 1706 may send a message 1714that includes an expression associated with code 1 1708 (e.g.,Expression 1) and metadata associated with code 1 1708. For example, themetadata may include one or more expressions associated with code 11714, such as expression 2 and expression 3. In an aspect, the message1714 may be a match report acknowledgment message. Since expression 2and expression 3 are received as metadata for code 1 1708, the first UE1704 determines that expression 2 and expression 3 are also associatedwith the second UE 1702 that transmitted code 1 1708. Therefore, thefirst UE 1704 may receive one or more secondary expressions (e.g.,expression 2 and expression 3) of the second UE 1702 using a primaryexpression code (e.g., code 1 1708). In other words, the first UE 1704may determine one or more secondary expressions (e.g., expression 2 andexpression 3) of the second UE 1702 without decoding the expressioncodes (e.g., code 2 1710 and code 3 1711) associated with the secondaryexpressions.

In another aspect, and as described infra with respect to FIGS. 18A and18B, the first UE 1804 may receive a primary expression code from asecond UE 1802 and may determine a protected secondary expression codetransmitted from the second UE 1802 using the primary expression code.

FIGS. 18A and 18B are diagrams illustrating device discovery in anetwork 1800 in accordance with various aspects of the presentdisclosure. As shown in FIG. 18A, network 1800 includes first UE 1804and second UE 1802. Second UE 1802 may transmit a signal 1806 thatincludes code 1 1808 (e.g., a primary expression code) and may transmita signal 1810 that includes code 2 1814 (e.g., a secondary expressioncode) and a prefix 1812. In an aspect, the prefix 1812 may be anarbitrary subset of the expression code bits. For example, the prefix1812 may be configured to precede or may be configured to follow code 21814. Therefore, it should be understood that the arrangement of thecode 2 1814 and prefix 1812 in signal 1810 may be different than shownin FIG. 18A in other aspects. The first UE 1804 may receive signal 1806and may successfully extract code 1 1808 from signal 1806. The first UE1804 may further receive the signal 1810, however, the first UE 1804 maynot be able to immediately extract code 2 1814 from signal 1810 withoutknowledge of the prefix 1812. In FIG. 18A, code 1 1808 may be associatedwith a first expression of the second UE 1802 and code 2 1814 may beassociated with a second expression of the second UE 1802. For example,the first and second expressions may be different ProSe applicationnames.

In an aspect, the first UE 1804 may determine the prefix 1812 byapplying a function to the code 1 1808. For example, with reference toFIG. 18B, the first UE 1804 may apply a prescribed hash function 1852 tothe code 1 1808 to generate the prefix 1812. The first UE 1804 mayidentify any received signals that include the prefix 1812. For example,the first UE 1804 may identify that the received signal 1810 includesthe prefix 1812. The first UE 1804 may then extract code 2 1814 usingthe prefix 1812. Therefore, since the first UE 1804 generated the prefix1812 using code 1 1808 from the second UE 1802, the first UE 1804determines that the code 2 1814 extracted using prefix 1812 is alsoassociated with the second UE 1802. Naturally, the exact same processingmay be used by the second UE 1802 to convey to any recipients that bothcode 1 and code 2 are linked or from the same device. In an aspect, thefirst UE 1804 may send a message that includes a request for informationassociated with the code 2 1814 to a network device. In an aspect, themessage may be a match report message that may be sent by a UE (e.g.,first UE 1804) to a ProSe Function in order for the UE to obtain theapplication-layer meaning (e.g., a ProSe Application Name) of thediscovered code (e.g., code 2 1814). The network device may send amessage that includes an expression associated with code 2 1814 andmetadata associated with code 2 1814. For example, the metadata mayinclude one or more expressions associated with code 2 1814.

In an aspect, and as described infra with respect to FIG. 19, a UE mayderive a discriminator for a public expression (e.g., an expressiondiscoverable by any UE without special permission) and may determinewhether any of the expression codes detected by the UE contain thederived discriminator. In this way, the UE can determine all expressioncodes that are linked by virtue of the same discriminator.

FIG. 19 is a diagram illustrating device discovery in a network 1900 inaccordance with various aspects of the present disclosure. As shown inFIG. 19, network 1900 includes first UE 1904 and second UE 1902. SecondUE 1902 may transmit a signal 1906 that includes code 1 1908 (e.g., aprimary expression code), a signal 1910 that includes code 2 1912 (e.g.,a secondary expression code) and a discriminator 1 1914, and a signal1916 that includes code 3 1918 (e.g., a secondary expression code) and adiscriminator 1 1920. It should be understood that the arrangement ofthe code 2 1912 and discriminator 1 1914 in signal 1910 may be differentthan shown in FIG. 19 in other aspects (e.g., discriminator 1 1914 mayprecede the code 2 1912). It should also be understood that thearrangement of the code 3 1918 and discriminator 1 1920 in signal 1916may be different than shown in FIG. 19 in other aspects (e.g.,discriminator 1 1920 may precede the code 2 1912).

The first UE 1904 may decode code 1 1908. In an aspect, the first UE1904 may derive a discriminator for a public expression that isdiscoverable by any UE without special permission. For example, thefirst UE 1904 may derive the discriminator (e.g., “discriminator 1”)using code 1 1908. The first UE 1904 may then determine whether thesignal 1910 and/or signal 1916 include the derived discriminator (e.g.,“discriminator 1”). As shown in FIG. 19, since the signal 1910 includesthe discriminator 1 1914 and since the signal 1916 includes thediscriminator 1 1920, the first UE 1904 may determine that code 2 1912and code 3 1918 are both linked to code 1 1908 by virtue of the samediscriminator derived from code 1 1908. Therefore, in the aspect of FIG.19, the first UE 1904 may determine secondary expression codes (e.g.,code 2 1912 and code 3 1918) that are linked to a primary expressioncode (code 1 1908) by virtue of having the same discriminator (e.g.,“discriminator 1”).

FIG. 20 is a diagram 2000 illustrating metadata management in accordancewith various aspects of the disclosure. FIG. 20 includes a first UE2006, a ProSe Function/Expression Name Server (ENS) 2004, and a secondUE 2002. In an aspect, the ProSe Function/ENS 2004 is a ProSe Functionthat is configured to support a metadata update operation initiated byan announcing UE (e.g., second UE 2002). As shown in FIG. 20, the secondUE 2002 sends an announcement message 2008. In an aspect, theannouncement message 2008 includes a ProSe Application Name and metadataassociated with the ProSe Application Name. The ProSe Function/ENS 2004receives the announcement message 2008 and converts the ProSeApplication Name in the announcement message 2008 into a bit string(e.g., a sequence of bits) suitable for an over-the-air transmission.For example, the bit string may be configured to enable one or moremonitoring UEs (e.g., first UE 2006) to determine whether anannouncement from the second UE 2002 is of interest to the one or moremonitoring UEs. The ProSe Function/ENS 2004 may store the metadata 2010included in the announcement message 2008 in a memory and may perform afunction 2012 to generate an ID associated with the metadata, such asmetadata ID 2014. The ProSe Function/ENS 2104 may then perform afunction 2016 to configure the bit string and the metadata ID 2014 in anexpression code, such as expression code 2018. As further shown in FIG.20, the ProSe Function/ENS 2004 sends a message 2020 that includesexpression code 2018 to the second UE 2002. The second UE 2002 thenbroadcasts an announcement message 2022 that includes the expressioncode 2018. The first UE 2006 receives the announcement message 2022 anddetermines that the expression code 2018 in the announcement message2022 is of interest to the first UE 2006. The first UE 2006 sends amessage 2024 that includes the expression code 2018. In an aspect, themessage 2024 may be a match report message. The ProSe Function/ENS 2004receives the message 2024 and identifies the expression code 2018 in themessage 2024. The ProSe Function/ENS 2004 performs a function 2026 toextract a metadata ID (e.g., metadata ID 2014) included in theexpression code 2018. The ProSe Function/ENS 2004 performs a function2028 to identify metadata (e.g., metadata 2010) corresponding to theextracted metadata ID (e.g., metadata ID 2014). The ProSe Function/ENS2004 then sends a message 2030 that includes the metadata (e.g.,metadata 2010) to the first UE 2006.

Therefore, in the aspect of FIG. 20, an announcing UE (e.g., second UE2002) may include metadata (e.g., metadata 2010) in a message (e.g.,message 2008) announced by the announcing UE, where the metadata isstored in a ProSe Function/ENS (e.g., ProSe Function/ENS 2004). Amonitoring UE (e.g., first UE 2006) may then receive the metadata fromthe ProSe Function/ENS.

FIG. 21 is a diagram 2100 illustrating a communication flow inaccordance with various aspects of the disclosure. FIG. 21 includes afirst UE 2106, a ProSe Function/ENS 2104, and a second UE 2102. As shownin FIG. 21, the second UE 2102 sends an announcement message 2108 to theProse Function/ENS 2104. In an aspect, the announcement message 2108includes a ProSe Application Name (e.g., Expression 1 (Expr1)) andmetadata (e.g., Metadata 1) associated with the ProSe Application Name.For example, the ProSe Application Name may be a description of anapplication that is to be announced by the second UE 2102, where thedescription is used by one or more monitoring UEs (e.g., first UE 2106)to determine whether the application of the second UE 2102 is ofinterest to the one or more monitoring UEs. The ProSe Function/ENS 2104receives the announcement message 2108 and converts the ProSeApplication Name in the announcement message 2108 into a bit string(e.g., a sequence of bits) suitable for an over-the-air transmission.For example, the bit string may be configured to enable one or moremonitoring UEs (e.g., first UE 2106) to determine whether theannouncement from the second UE 2102 is of interest to the one or moremonitoring UEs. The ProSe Function/ENS 2104 may store the metadataincluded in the announcement message 2108 in a memory and may generatean ID associated with the metadata. The ProSe Function/ENS 2104 may thenconfigure the bit string and the ID associated with the metadata in afirst expression code (e.g., Expression Code 1). As shown in FIG. 21,the ProSe Function/ENS 2104 sends a message 2110 that includes the firstexpression code (e.g., Expression Code 1) to the second UE 2102.

As shown in FIG. 21, the second UE 2102 announces (e.g., broadcastsover-the-air) message 2112 that includes Expression Code 1. The first UE2106 receives the message 2112 and determines that the Expression Code 1in message 2112 is of interest to the first UE 2106. For example, thefirst UE 2106 may make the determination based on one or more criteriaconfigured by a user of the first UE 2106. The first UE 2106 sends aMatch Report message 2114 that includes the Expression Code 1 to theProSe Function/ENS 2104. The ProSe Function/ENS 2104 extracts the bitstring and the ID associated with the metadata (e.g., Metadata 1) fromthe Expression Code 1 included in the match report message 2114. TheProSe Function/ENS 2104 then identifies the ProSe Application Name(e.g., Expr1) associated with the bit string and the metadata associatedwith the ID. The ProSe Function/ENS 2104 then sends a message 2116 thatincludes the ProSe Application Name and the metadata (e.g., Metadata 1).The first UE 2106 receives the message 2116 and determines thatExpression Code 1 corresponds to the ProSe Application Name (e.g.,Expr1) and the metadata (e.g., Metadata 1) received via message 2116.

As shown in FIG. 21, the second UE 2102 may update the metadata (e.g.,Metadata 1) stored by ProSe Function/ENS 2104 by sending message 2118that includes updated metadata (e.g., Metadata 2). In an aspect, themessage 2118 may include an instruction to update the metadata. TheProSe Function/ENS 2104 may generate an updated ID associated with theupdated metadata. The ProSe Function/ENS 2104 may then configure the bitstring associated with the ProSe Application Name and the updated IDassociated with the updated metadata in a second expression code (e.g.,Expression Code 2). As shown in FIG. 21, the ProSe Function/ENS 2104sends a message 2120 that includes the second expression code (e.g.,Expression Code 2) to the second UE 2102.

As shown in FIG. 21, the second UE 2102 announces (e.g., broadcastsover-the-air) message 2122 that includes Expression Code 2. The first UE2106 receives the message 2122 and determines that Expression Code 2 inmessage 2122 is of interest to the first UE 2106. For example, the firstUE 2106 may make the determination based on one or more criteriaconfigured by the user of the first UE 2106. The first UE 2106 sends aMatch Report message 2124 that includes the Expression Code 2 to theProSe Function/ENS 2104. The ProSe Function/ENS 2104 extracts the bitstring and the updated ID associated with the updated metadata (e.g.,Metadata 2) from the Expression Code 2 included in the Match Reportmessage 2124. The ProSe Function/ENS 2104 then identifies the ProSeApplication Name (e.g., Expr1) associated with the bit string and theupdated metadata associated with the updated ID. The ProSe Function/ENS2104 then sends a message 2126 that includes the ProSe Application Name(e.g., Expr1) and the updated metadata (e.g., Metadata 2). The first UE2106 receives the message 2126 and determines that Expression Code 2corresponds to the ProSe Application Name (e.g., Expr1) and the updatedmetadata (e.g., Metadata 2) received via message 2126. Therefore, in theaspect of FIG. 21, the second UE 2102 may update the metadata associatedwith the ProSe Application Name and the first UE 2106 may retrieve theupdated metadata from the ProSe Function/ENS 2104, without requiring theProSe Function/ENS 2104 to execute a push function to notify one or moremonitoring UEs of the updated metadata.

FIG. 22 is a diagram illustrating an exemplary network 2200. As shown inFIG. 22, network 2200 includes first UE 2201, second UE 2202, and ProSeFunction/ENS 2204. As shown in FIG. 22, the first UE 2201 in network2200 may be monitoring expression codes transmitted (e.g., broadcasted)by one or more announcing UEs, such as second UE 2202. In an aspect,second UE 2202 may be located at a first location (indicated as “Loc 1”in FIG. 22) and may remain stationary at location 1. The second UE 2202may determine the location of second UE 2202 and may send anannouncement 2206 that includes a ProSe Application Name and/or metadata(e.g., Metadata 1 2208). In an aspect, the metadata may include thestationary location information (e.g., “Loc 1”) of the second UE 2202.For example, the stationary location information may be geographiccoordinates (e.g., GPS coordinates or GPS data) indicating the locationof the second UE 2202 remaining stationary at the first location. TheProSe Function/ENS 2204 may store the metadata (e.g., Metadata 1 2208)in a memory and may provide the second UE 2202 a primary expression code(e.g., Primary Code 1) associated with the ProSe Application Name and/orthe metadata (e.g., Metadata 1 2208). The second UE 2202 may transmit amessage 2210 that includes the primary expression code (e.g., PrimaryCode 1).

As shown in FIG. 22, the second UE 2202 may no longer remain stationaryand may move along exemplary path 2226 to a second location (indicatedas “Loc 2”). The second UE 2202 may determine the location of second UE2202 and may send an update message 2212 that includes the ProSeApplication Name and/or updated metadata (e.g., Metadata 2 2214). In anaspect, the updated metadata may include information for identifying asecondary expression code (e.g., Secondary Code 1) that includes thecurrent location (e.g., “Loc 2”) of the moving second UE 2202. The ProSeFunction/ENS 2204 may store the updated metadata (e.g., e.g., Metadata 22214) in a memory and may provide the second UE 2202 a second primaryexpression code (e.g., Primary Code 2) associated with the ProSeApplication Name and/or the updated metadata (e.g., Metadata 2 2214).The second UE 2202 may transmit a message 2216 that includes the secondprimary expression code (e.g., Primary Code 2) and a message 2218 thatincludes the secondary expression code (e.g., Secondary Code 1).

As shown in FIG. 22, the second UE 2202 may continue moving alongexemplary path 2228 and may arrive at a third location (indicated as“Loc 3” in FIG. 22) and may remain stationary at the third location. Thesecond UE 2202 may determine the location of second UE 2202 and may sendan update message 2220 that includes a ProSe Application Name and/orupdated metadata (e.g., Metadata 3 2222). In an aspect, the updatedmetadata (e.g., Metadata 3 2222) may include the stationary locationinformation (e.g., “Loc 3”) of the second UE 2202. For example, thestationary location information may be geographic coordinates (e.g., GPScoordinates or GPS data) indicating the location of the second UE 2202remaining stationary at the third location. The ProSe Function/ENS 2204may store the updated metadata (e.g., e.g., Metadata 3 2222) in a memoryand may provide the second UE 2202 a third primary expression code(e.g., Primary Code 3) associated with the ProSe Application Name and/orthe updated metadata (e.g., Metadata 3 2222). The second UE 2202 maytransmit a message 2224 that includes the third primary expression code(e.g., Primary Code 3).

FIG. 23 is a diagram 2300 illustrating a communication flow inaccordance with various aspects of the disclosure. It should beunderstood that the transmissions indicated with dotted lines in FIG. 23represent optional transmissions for illustrating various aspects of thedisclosure. In an aspect, the first UE 2301, second UE 2302, and theProSe Function/ENS 2304 in FIG. 23 may respectively correspond to thefirst UE 2201, second UE 2202, and the ProSe Function/ENS 2204 in FIG.22.

As shown in FIG. 23, a second UE 2302 remains stationary 2308 at a firstlocation (e.g., “Loc 1”). The second UE 2302 may determine the locationof the second UE 2302 and may send an Announce Request message 2310 thatincludes a ProSe Application Name (e.g., Expr1) and metadata (e.g.,Metadata 1) associated with the ProSe Application Name. For example, thesecond UE 2302 may determine the location of second UE 2302 by receivingGPS data from a satellite or by receiving location information from anetwork (e.g., via WiFi™ network scanning) In an aspect, the Metadata 1may include the stationary location information (e.g., “Loc 1”) of thesecond UE 2202. For example, the stationary location information may begeographic coordinates (e.g., GPS coordinates or GPS data) indicatingthe location of the stationary second UE 2302. For example, the ProSeApplication Name may be a description of an application that is to beannounced by the second UE 2302, where the description is used by one ormore monitoring UEs (e.g., first UE 2301) to determine whether theapplication of the second UE 2302 is of interest to the one or moremonitoring UEs. The ProSe Function/ENS 2304 receives the AnnounceRequest message 2310 and may configure the ProSe Application Name (e.g.,Expr1) and the Metadata 1 (or information associated with the Metadata1, such as a metadata ID) into a first expression code (e.g., PrimaryCode 1). For example, and as described supra, an expression code may bea sequence of bits suitable for an over-the-air transmission and may beconfigured to enable one or more monitoring UEs (e.g., first UE 2301) todetermine whether the announcement from the second UE 2302 is ofinterest to the one or more monitoring UEs. As shown in FIG. 23, theProSe Function/ENS 2304 sends a message 2312 that includes the firstprimary expression code (e.g., Primary Code 1) to the second UE 2302.

As shown in FIG. 23, the second UE 2302 announces (e.g., broadcastsover-the-air) message 2314 that includes Primary Code 1. The first UE2301 receives the message 2314 and determines that the Primary Code 1 inmessage 2314 is of interest to the first UE 2301. For example, the firstUE 2301 may make the determination based on one or more criteriaconfigured by a user of the first UE 2301. The first UE 2301 sends aMatch Report message 2318 that includes the Primary Code 1 to the ProSeFunction/ENS 2304. The ProSe Function/ENS 2304 matches the Primary Code1 to the ProSe Application Name and the Metadata 1. The ProSeFunction/ENS 2104 then sends a message 2320 that includes the ProSeApplication Name and Metadata 1. The first UE 2301 receives the message2320 and determines the stationary location (e.g., “Loc 1”) of thesecond UE 2302 based on Metadata 1. As shown in FIG. 23, the second UE2302 may no longer remain stationary and may begin moving 2316 to asecond location (e.g., “Loc 2”). The second UE 2302 may determine thelocation (e.g., “Loc 2”) of the second UE 2302 when the second UE 2302has moved from the stationary location (e.g., “Loc 1”). For example, thesecond UE 2302 may determine the location of second UE 2302 by receivingGPS data from a satellite or by receiving location information from anetwork.

In an aspect, when the second UE 2302 has started moving 2316, thesecond UE 2302 may transmit a message 2334 that includes a secondaryexpression code (e.g., Secondary Code 1). For example, the secondaryexpression code may be a sequence of bits suitable for an over-the-airtransmission (e.g., broadcast) to one or more monitoring UEs. Thesecondary expression code may further enable a monitoring UE (e.g., thefirst UE 2301) to determine the current location of the second UE 2302when the second UE 2302 has started moving 2316. In an aspect, thesecondary expression code may have two components. For example, thefirst component may be information (also referred to as a “dependentcode”) that links the secondary expression code to a primary expressioncode (e.g., Primary Code 1 or Primary Code 2 in FIG. 23), and the secondcomponent may include information representing the current location(e.g., “Loc 2”) of the moving second UE 2302. In an aspect, the secondUE 2302 may acquire the dependent code by sending a PAI to the ProSeFunction/ENS 2304. In such aspect, the ProSe Function/ENS 2034 maygenerate and assign the dependent code using the PAI, and may send thedependent code to the second UE 2302. In another aspect, the dependentcode may be the output of a private expression code passed through ahash function. In another aspect, the second UE 2302 may acquire thedependent code by sending a private expression name (e.g., RestrictedProSe Application User ID) to the ProSe Function/ENS 2304. In suchaspect, the ProSe Function/ENS 2304 may generate and assign thedependent code using the private expression name, and may send thedependent code to the second UE 2302. In another aspect, the second UE2302 may request the dependent code from the ProSe Function/ENS 2034 andmay receive the dependent code from the ProSe Function/ENS 2034 inresponse to the request. Therefore, it should be understood that thedependent code may be generated independently by the second UE 2302 oracquired via communication with a network device, such as a ProSeFunction (e.g., ProSe Function/ENS 2304) or other application server(e.g., third-party social network).

The second UE 2302 may communicate the dependent code to a monitoring UE(e.g., the first UE 2301) in different ways. In one aspect, withreference to FIG. 23, the second UE 2302 may include the dependent codein Metadata 1 that is sent in Announce Request message 2310. In suchaspect, the first UE 2301 receives Metadata 1 in the message 2320 anddetermines the dependent code using Metadata 1. The first UE 2301 thenuses the dependent code to identify and/or to decode the Secondary Code1 in message 2334. In an aspect, the second UE 2302 may transmit aprimary expression code (e.g., Primary Code 1 or Primary Code 2) whenthe second UE 2302 has started moving and may set a flag in the primaryexpression code that indicates to a monitoring UE (e.g., first UE 2301)that the second UE 2302 has started moving. Upon detecting Primary Code2 or the flag in the Primary Code 1 or Primary Code 2, the first UE 2301may monitor for a secondary expression code (e.g., Secondary Code 1)using the dependent code acquired previously in order to determine thecurrent location of the moving second UE 2302.

In another aspect, the second UE 2302 may communicate the dependent codeto a monitoring UE (e.g., the first UE 2301) by including the dependentcode in the bits of a primary expression code (e.g., Primary Code 1, 2,and/or 3 in FIG. 23). In such aspect, the first UE 2301 may use thedependent code to identify and/or decode any secondary expression codesthat include the current location of the moving second UE 2302.

In another aspect, the second UE 2302 may generate the dependent codebased on the bits of a primary expression code. For example, the secondUE 2302 may apply a hash function to the bits of a primary expressioncode (e.g., Primary Code 1), where the output of the hash functionrepresents the dependent code. In such example, a monitoring UE (e.g.,the first UE 2301) may receive the bits of the primary expression codeand may apply the same hash function on the bits of the primaryexpression code to determine the dependent code.

In another aspect, with reference to FIG. 23, the second UE 2302 maysend an update message 2322 that includes the ProSe Application Name(e.g., Expr1) and updated metadata (e.g., Metadata 2), where the updatedmetadata includes the dependent code. In such aspect, the ProSeFunction/ENS 2304 may store Metadata 2 in a memory and may configure theProSe Application Name (e.g., Expr1) and the Metadata 2 (or informationassociated with the Metadata 2, such as a metadata ID) into a secondprimary expression code (e.g., Primary Code 2). As shown in FIG. 23, theProSe Function/ENS 2304 may send a message 2324 that includes the secondprimary expression code (e.g., Primary Code 2) to the second UE 2302. Asfurther shown in FIG. 23, the second UE 2302 announces (e.g., broadcastsover-the-air) message 2326 that includes a Primary Code 2.

As shown in FIG. 23, the first UE 2301 receives the message 2326 anddetermines that the Primary Code 2 in message 2326 is of interest to thefirst UE 2301. For example, the first UE 2301 may make the determinationbased on one or more criteria configured by a user of the first UE 2301.As shown in FIG. 23, in one aspect, the first UE 2301 may send a MatchReport message 2330 that includes the Primary Code 2 to the ProSeFunction/ENS 2304. The ProSe Function/ENS 2304 may match the PrimaryCode 2 to the ProSe Application Name (e.g., Expr1) and the updatedmetadata (e.g., Metadata 2). The ProSe Function/ENS 2104 may send amessage 2332 that includes the ProSe Application Name and Metadata 2.The first UE 2301 may receive Metadata 2 via message 2332 and maydetermine the dependent code included in Metadata 2. The first UE 2301may use the dependent code to identify and/or to decode Secondary Code 1in message 2334 in order to determine the current location (e.g., “Loc2”) of the moving second UE 2302 included in the Secondary Code 1.

With respect to the aspects described supra, after the second UE 2302acquires location information indicating the current location (e.g.,“Loc 2”) of the second UE 2302 and further acquires the dependent code,the second UE 2302 may compress the location information to generate thesecond component of the secondary expression code (e.g., Secondary Code1). Therefore, after acquiring the first and second components of thesecondary expression code, the second UE 2302 may generate the secondaryexpression code without additional communication with a network device(e.g., ProSe Function/ENS 2304). In an aspect, the second UE 2302 maycompress the location information using a modem or other hardware of thesecond UE 2302 in order to reduce power consumption in the second UE2302. In other aspects, if the second UE 2302 is not power constrained,the second UE 2302 may communicate with a network device (e.g., ProSeFunction/ENS 2304 or a location server) to obtain new locationinformation from the network device.

With further respect to the aspects described supra, after the first UE2301 receives the secondary expression code (e.g., Secondary Code 1),the first UE 2301 may determine the location information from thesecondary expression code. For example, the first UE 2301 may extractlocation information (e.g., compressed data bits) representing thecurrent location of the second UE 2302 from the second component of thesecondary expression code. The first UE 2301 may then decode thelocation information to determine the current location of the second UE2302. Such extraction and decoding of the location information may beperformed by the first UE 2301 using a modem or other hardware of thefirst UE 2301. Therefore, the first UE 2301 may extract and decode thelocation information to determine the current location of the second UE2302 without additional communication with a network device (e.g., ProSeFunction/ENS 2304). In other aspects, if the first UE 2301 is not powerconstrained, the first UE 2301 may provide the location informationextracted from the secondary expression code to a network device (e.g.,ProSe Function/ENS 2304 or location server), which may decode thelocation information and provide the decoded location information to thefirst UE 2301.

As shown in FIG. 23, the second UE 2302 remains stationary 2336 at athird location (e.g., “Loc 3”). The second UE 2302 may determine thelocation of second UE 2302 and may send an update message 2338 thatincludes a ProSe Application Name (e.g., Expr1) and updated metadata(e.g., Metadata 3) associated with the ProSe Application Name. In anaspect, Metadata 3 may include the stationary location information(e.g., “Loc 3”) of the second UE 2302. For example, the stationarylocation information may be geographic coordinates (e.g., GPScoordinates or GPS data) indicating the location of the stationarysecond UE 2302. The ProSe Function/ENS 2304 receives the update message2338 and may configure the ProSe Application Name (e.g., Expr1) andMetadata 3 (or information associated with the Metadata 3, such as ametadata ID) into a third primary expression code (e.g., Primary Code3). For example, the third primary expression code may be a sequence ofbits suitable for an over-the-air transmission and may be configured toenable one or more monitoring UEs (e.g., first UE 2301) to determinewhether the announcement from the second UE 2302 is of interest to theone or more monitoring UEs. As shown in FIG. 23, the ProSe Function/ENS2304 sends a message 2340 that includes the third primary expressioncode (e.g., Primary Code 3) to the second UE 2302.

As shown in FIG. 23, the second UE 2302 announces (e.g., broadcastsover-the-air) message 2342 that includes Primary Code 3. The first UE2301 receives the message 2342 and determines that the Primary Code 3 inmessage 2342 is of interest to the first UE 2301. For example, the firstUE 2301 may make the determination based on one or more criteriaconfigured by a user of the first UE 2301. The first UE 2301 sends aMatch Report message 2344 that includes the Primary Code 3 to the ProSeFunction/ENS 2304. The ProSe Function/ENS 2304 matches the Primary Code3 to the ProSe Application Name and the Metadata 3. The ProSeFunction/ENS 2104 then sends a message 2346 that includes the ProSeApplication Name and Metadata 3. The first UE 2301 receives the message2346 and determines the stationary location (e.g., “Loc 3”) of thesecond UE 2302 based on Metadata 3.

FIG. 24 is a flow chart 2400 of a method of communication. The methodmay be performed by a network device (e.g., the ProSe Function 1012,1112, 1212, the apparatus 3002/3002′). It should be understood that theoperations represented with dotted lines in FIG. 24 represent optionaloperations.

At operation 2402, the network device receives, from a first UE, arequest for information associated with a discovered second UE. Theinformation includes location information associated with the second UE.For example, with reference to FIG. 10, the ProSe Function 1012 receivesmessage 1016 from UE_B 1004 including a request for location informationassociated with UE_A 1002. In an aspect, the request for the locationinformation is received in a match report message from the first UE.

At operation 2404, the network device determines whether the first UE isauthorized to receive the location information.

At operation 2406, the network device sends a message configured toinitiate reporting of the location information by the second UE based onthe determination. For example, with reference to FIG. 10, the ProSeFunction 1012 initiates the reporting by sending a request 1018 to thelocation server 1014 for the requested location information. In anaspect, the location server 1014 may send a message 1020 to the UE_A1002 using LTE protocols requesting the location information. As anotherexample, with reference to FIG. 11, the ProSe Function 1112 initiatesthe reporting by sending a message 1116 to the UE_A 1102 using LTEprotocols requesting the UE_A 1102 to update its metadata with currentlocation information.

At operation 2408, the network device receives the location informationfrom a second network device or from the second UE. In an aspect, thelocation information received from the second UE is included in metadataassociated with the second UE.

At operation 2410, the network device sends the location information tothe first UE. In an aspect, the location information is sent to thefirst UE in a match report acknowledgment message.

Finally, at operation 2412, the network device sends, to the first UE, amessage including a location-carrying code to be announced by the secondUE along with the location information, or a security key to enabledetermination of the location information to be announced by the secondUE. For example, if the location information announced by the second UEis encrypted using the security key, the security key may be used todecrypt the encrypted location information announced by the second UE.As another example, the security key may be used to perform the inverseof the cryptographic function applied to the location informationannounced by the second UE to enable determination of the locationinformation.

FIG. 25 is a flow chart 2500 of a method of wireless communication. Themethod may be performed by a first UE (e.g., UE_B 1004, 1104, 1204, theapparatus 3202/3202′). It should be understood that the operationsrepresented with dotted lines in FIG. 25 represent optional operations.

At operation 2502, the UE discovers a second UE through a ProSediscovery, BTLE discovery, or WFA NAN discovery.

At operation 2504, the UE sends, to a network device, a request forlocation information associated with the second UE. In an aspect, therequest for the location information is sent to the network device in amatch report message. In an aspect, the network device is a ProSe serverconfigured to support ProSe Functions.

At operation 2506, the UE receives, from the network device, a messageincluding a location-carrying code to be announced by the second UEalong with the location information. In an aspect, the locationinformation is received from the second UE in a broadcast message.

At operation 2508, the UE processes the broadcast message using thelocation-carrying code to obtain the location information.

At operation 2510, the UE receives, from the network device, a messageincluding the security key to enable determination of the locationinformation to be announced by the second UE.

At operation 2512, the UE processes the broadcast message using thesecurity key. For example, if the location information announced by thesecond UE is encrypted using the security key, the UE may use thesecurity key to decrypt the encrypted location information announced bythe second UE. As another example, the UE may use the security key toperform the inverse of the cryptographic function applied to thelocation information announced by the second UE to determine thelocation information.

At operation 2514, the UE receives the location information when the UEis authorized to receive the location information. In an aspect, thelocation information is received from the network device in a matchreport acknowledgment message.

FIG. 26 is a flow chart 2600 of a method of wireless communication. Themethod may be performed by a first UE (e.g., UE_B 1004, 1104, 1204, theapparatus 3202/3202′).

At operation 2602, the first UE receives, from a second UE, a firstsignal including a first expression code associated with the second UE.

At operation 2604, the first UE determines at least a second expressioncode using the first expression code, the at least a second expressioncode associated with the second UE. In an aspect, the first UEdetermines the at least a second expression code by receiving, from thesecond UE, a second signal including a first prefix and the at least asecond expression code, applying a function to the first expression codeto generate a second prefix, comparing the second prefix to the firstprefix, determining the at least a second expression code in the secondsignal when the second prefix matches the first prefix. In an aspect,the first UE determines the at least a second expression code by sendingthe first expression code to a network device, and receiving the atleast a second expression code associated with the second UE from thenetwork device. For example, with reference to FIG. 18A, the firstexpression code may be code 1 1808, the first prefix may be prefix 1812,and the second expression code may be code 2 1814. In an aspect, thefirst signal including the first expression code is received in a firstdiscovery resource and the second signal including the at least a secondexpression code is received in a second discovery resource, wherein thefirst discovery resource is independent of the second discoveryresource. In an aspect, the function is a hash function. In an aspect,the first expression code is sent to the network device in a matchreport message. In an aspect, the network device is a ProSe Function. Inan aspect, the first expression code or the at least a second expressioncode corresponds to a service of the second UE or an application of thesecond UE.

FIG. 27 is a flow chart 2700 of a method of wireless communication. Themethod may be performed by a network device (e.g., the ProSe Functions1012, 1112, 1212, the apparatus 3002/3002′). It should be understoodthat the operations represented with dotted lines in FIG. 27 representoptional operations.

At operation 2702, the network device receives a first expression codefrom a first UE, the first expression code associated with a second UE.In an aspect, the network device is a ProSe Function. In an aspect, thefirst expression code is received in a match report message from thefirst UE.

At operation 2704, the network device identifies at least a secondexpression code using the first expression code, the at least a secondexpression code associated with the second UE.

At operation 2706, the network device sends, to the first UE, the atleast a second expression code associated with the second UE.

At operation 2708, the network device determines metadata associatedwith the first expression code.

At operation 2710, the network device sends the determined metadata tothe first UE.

FIG. 28 is a flow chart 2800 of a method of wireless communication. Themethod may be performed by an announcing UE (e.g., second UE 1702,second UE 1802, second UE 1902, second UE 2202, second UE 2302, theapparatus 3402/3402′). It should be understood that the operationsrepresented with dotted lines in FIG. 28 represent optional operations.

At operation 2802, the announcing UE determines a first location of theannouncing UE when the announcing UE is stationary.

At operation 2804, the announcing UE transmits a first signal includinga first expression code, the first expression code associated with firstmetadata stored in a server, the first metadata indicating the firstlocation. For example, with reference to FIG. 23, the second UE 2302 maytransmit message 2314 that includes Primary Code 1.

At operation 2806, the announcing UE determines a second location of theannouncing UE when the announcing UE is moving.

At operation 2808, the announcing UE updates the first metadata storedin the server with second metadata. For example, with reference to FIG.23, the second UE 2302 may send update message 2322 that includesupdated metadata (e.g., Metadata 2).

At operation 2810, the announcing UE transmits a second signal includinga second expression code, the second expression code associated with thesecond metadata. For example, with reference to FIG. 23, the second UE2302 may transmit message 2326 that includes Primary Code 2.

At operation 2812, the announcing UE transmits a third signal includinga third expression code, the third expression code indicating the secondlocation, wherein the second metadata is configured to enable decodingof the third expression code. For example, with reference to FIG. 23,the second UE 2302 may transmit a message (e.g., message 2334) thatincludes Secondary Code 1.

At operation 2814, the announcing UE determines a third location of theannouncing UE when the announcing UE is no longer moving.

At operation 2816, the announcing UE updates the second metadata storedin the server with third metadata, the third metadata indicating thethird location. For example, with reference to FIG. 23, the second UE2302 may transmit update message 2338 that includes updated metadata(e.g., Metadata 3).

At operation 2818, the announcing UE transmits a fourth signal includinga fourth expression code, the fourth expression code associated with thethird metadata. For example, with reference to FIG. 23, the second UE2302 may transmit message 2342 that includes Primary Code 3.

FIG. 29 is a flow chart 2900 of a method of wireless communication. Themethod may be performed by a first UE (e.g., first UE 1704, first UE1804, first UE 1904, first UE 2201, first UE 2301, the apparatus3202/3202′). It should be understood that the operations representedwith dotted lines in FIG. 29 represent optional operations.

At operation 2902, the first UE receives, from a second UE, a firstsignal including a first expression code associated with the second UE.For example, with reference to FIG. 23, the first UE 2301 may receive amessage 2326 that includes Primary Code 2.

At operation 2904, the first UE determines first metadata associatedwith the first expression code. For example, with reference to FIG. 23,the first UE 2301 may determine Metadata 2 by performing a match reportoperation based on Primary Code 2.

At operation 2906, the first UE monitors for a second signal from thesecond UE based on the first metadata, the second signal including asecond expression code that includes a first location of the second UE.For example, with reference to FIG. 23, the first UE 2301 may monitorfor the Secondary Code 1 in message 2334 based on information includedin Metadata 2.

At operation 2908, the first UE determines the first location of thesecond UE from the second expression code using the first metadata. Forexample, with reference to FIG. 23, the first UE 2301 may decodeSecondary Code 1 using Metadata 2 to determine geographic coordinatesincluded in Secondary Code 1.

At operation 2910, the first UE receives, from the second UE, a thirdsignal including a third expression code associated with the second UE.For example, with reference to FIG. 23, the first UE 2301 may receive amessage that includes Primary Code 3.

At operation 2912, the first UE determines second metadata associatedwith the third expression code. For example, with reference to FIG. 23,the first UE 2301 determine Metadata 3 by performing a match reportoperation based on Primary Code 3.

At operation 2914, the first UE determines a second location of thesecond UE from the third expression code. For example, with reference toFIG. 23, the first UE 2301 may determine geographic coordinates includedin Metadata 3.

FIG. 30 is a conceptual data flow diagram 3000 illustrating the dataflow between different modules/means/components in an exemplaryapparatus 3002. The apparatus may be a network device (e.g., ProSeFunction 1012, 1112, 1212, ProSe Function/ENS 2004, 2104). The apparatusincludes a reception component 3004 that receives, from a second UE(e.g., second UE 3060), a message including metadata. The receptioncomponent 3004 further receives a metadata update message from thesecond UE, the metadata update message including updated metadata. Thereception component 3004 further receives, from a first UE (e.g., firstUE 3050), a request for information associated with a discovered secondUE (e.g., second UE 3060), the information including locationinformation associated with the second UE. The reception component 3004further receives the location information from a second network device(e.g., location server 3070) or from the second UE. The receptioncomponent 3004 further receives a first expression code from a first UE,the first expression code associated with a second UE. The apparatusincludes authorization determining component 3006 that determineswhether the first UE is authorized to receive the location information.The apparatus includes a location information reporting initiationcomponent 3008 that sends (via transmission component 3016) a messageconfigured to initiate reporting of the location information by thesecond UE based on the determination and sends the location informationto the first UE. The apparatus further includes a message configuringcomponent 3010 that sends (via transmission component 3016), to thefirst UE, a message including a location-carrying code to be announcedby the second UE along with the location information, or a security keyto enable determination of the location information to be announced bythe second UE. The apparatus further includes an expression codeidentifying component 3012 that identifies at least a second expressioncode using the first expression code, the at least a second expressioncode associated with the second UE. The apparatus further includesmetadata determining component 3014 that determines metadata associatedwith the first expression code. The apparatus further includestransmission component 3016 that sends, to the first UE, the at least asecond expression code associated with the second UE. The transmissioncomponent 3016 further sends the determined metadata to the first UE.

The apparatus may include additional components that perform each of theoperations of the algorithm in the aforementioned flow charts of FIGS.24 and 27. As such, each operation in the aforementioned flow charts ofFIGS. 24 and 27 may be performed by a component and the apparatus mayinclude one or more of those components. The components may be one ormore hardware components specifically configured to carry out the statedprocesses/algorithm, implemented by a processor configured to performthe stated processes/algorithm, stored within a computer-readable mediumfor implementation by a processor, or some combination thereof.

FIG. 31 is a diagram 3100 illustrating an example of a hardwareimplementation for an apparatus 3002′ employing a processing system3114. The processing system 3114 may be implemented with a busarchitecture, represented generally by the bus 3124. The bus 3124 mayinclude any number of interconnecting buses and bridges depending on thespecific application of the processing system 3114 and the overalldesign constraints. The bus 3124 links together various circuitsincluding one or more processors and/or hardware components, representedby the processor 3104, the components 3004, 3006, 3008, 3010, 3012,3014, and 3016, and the computer-readable medium/memory 3106. The bus3124 may also link various other circuits such as timing sources,peripherals, voltage regulators, and power management circuits, whichare well known in the art, and therefore, will not be described anyfurther.

The processing system 3114 may be coupled to a transceiver 3110. Thetransceiver 3110 is coupled to one or more antennas 3120. Thetransceiver 3110 provides a means for communicating with various otherapparatus over a transmission medium. The transceiver 3110 receives asignal from the one or more antennas 3120, extracts information from thereceived signal, and provides the extracted information to theprocessing system 3114, specifically the reception component 3004. Inaddition, the transceiver 3110 receives information from the processingsystem 3114, specifically the transmission component 3016, and based onthe received information, generates a signal to be applied to the one ormore antennas 3120. The processing system 3114 includes a processor 3104coupled to a computer-readable medium/memory 3106. The processor 3104 isresponsible for general processing, including the execution of softwarestored on the computer-readable medium/memory 3106. The software, whenexecuted by the processor 3104, causes the processing system 3114 toperform the various functions described supra for any particularapparatus. The computer-readable medium/memory 3106 may also be used forstoring data that is manipulated by the processor 3104 when executingsoftware. The processing system further includes at least one of thecomponents 3004, 3006, 3008, 3010, 3012, 3014, and 3016. The componentsmay be software components running in the processor 3104,resident/stored in the computer-readable medium/memory 3106, one or morehardware components coupled to the processor 3104, or some combinationthereof. The processing system 3114 may be a component of the eNB 610and may include the memory 676 and/or at least one of the TX processor616, the RX processor 670, and the controller/processor 675.

In one configuration, the apparatus 3002/3002′ for wirelesscommunication includes means for receiving a first expression code froma first UE, the first expression code associated with a second UE, meansfor identifying at least a second expression code using the firstexpression code, the at least a second expression code associated withthe second UE, means for sending, to the first UE, the at least a secondexpression code associated with the second UE, means for receiving, froma first UE, a request for location information associated with a secondUE, means for determining whether the first UE is authorized to receivethe location information, means for sending a message configured toinitiate reporting of the location information by the second UE based onthe determination, means for receiving the location information from asecond network device or from the second UE, means for sending thelocation information to the first UE, means for sending, to the firstUE, a message including a location-carrying code to be announced by thesecond UE along with the location information, or a security key toenable deciphering of the location information to be announced by thesecond UE, means for determining metadata associated with the firstexpression code, and means for sending the determined metadata to thefirst UE. The aforementioned means may be one or more of theaforementioned components of the apparatus 3002 and/or the processingsystem 3114 of the apparatus 3002′ configured to perform the functionsrecited by the aforementioned means. As described supra, the processingsystem 3114 may include the TX Processor 616, the RX Processor 670, andthe controller/processor 675. As such, in one configuration, theaforementioned means may be the TX Processor 616, the RX Processor 670,and the controller/processor 675 configured to perform the functionsrecited by the aforementioned means.

FIG. 32 is a conceptual data flow diagram 3200 illustrating the dataflow between different modules/means/components in an exemplaryapparatus 3202. The apparatus may be a first UE (e.g., UE_B 1004, 1104,1204, 2106, 2301). The apparatus includes reception component 3204 thatreceives, from a network device (e.g., ProSe Function 3260), a messageincluding a location-carrying code to be announced by a second UE (e.g.,second UE 3250) along with the location information. The receptioncomponent 3204 further receives, from the network device, a messageincluding a security key to enable determination of the locationinformation to be announced by the second UE. The reception component3204 further receives the location information when authorized toreceive the location information. The reception component 3204 furtherreceives, from a second UE, a first signal including a first expressioncode associated with the second UE. The reception component 3204 furtherreceives, from a second UE, a first signal including a first expressioncode associated with the second UE. The reception component 3204 furtherreceives, from the second UE, a third signal including a thirdexpression code associated with the second UE. The apparatus furtherincludes an expression determining component 3206 that determines atleast a second expression code using the first expression code, the atleast a second expression code associated with the second UE. Theapparatus further includes a discovery component 3210 that discovers thesecond UE through a ProSe discovery, BTLE discovery, or WFA NANdiscovery. The apparatus further includes a location informationrequesting component 3212 that sends (via transmission component 3222),to the network device, a request for location information associatedwith the second UE. The apparatus includes a message processingcomponent 3214 that processes the broadcast message using thelocation-carrying code or using the security key. The apparatus furtherincludes a metadata determining component 3216 that determines firstmetadata associated with the first expression code and determines secondmetadata associated with the third expression code. The apparatusfurther includes a monitoring component 3218 that monitors for a secondsignal from the second UE based on the first metadata, the second signalcontaining a second expression code that includes a first location ofthe second UE. The apparatus further includes a location determiningcomponent 3220 that determines the first location of the second UE fromthe second expression code using the first metadata and that determinesa second location of the second UE from the second metadata.

The apparatus may include additional components that perform each of theoperations of the algorithm in the aforementioned flow charts of FIGS.25, 26, and 29. As such, each operation in the aforementioned flowcharts of FIGS. 25, 26, and 29 may be performed by a component and theapparatus may include one or more of those components. The componentsmay be one or more hardware components specifically configured to carryout the stated processes/algorithm, implemented by a processorconfigured to perform the stated processes/algorithm, stored within acomputer-readable medium for implementation by a processor, or somecombination thereof.

FIG. 33 is a diagram 3300 illustrating an example of a hardwareimplementation for an apparatus 3202′ employing a processing system3314. The processing system 3314 may be implemented with a busarchitecture, represented generally by the bus 3324. The bus 3324 mayinclude any number of interconnecting buses and bridges depending on thespecific application of the processing system 3314 and the overalldesign constraints. The bus 3324 links together various circuitsincluding one or more processors and/or hardware components, representedby the processor 3304, the components 3204, 3206, 3210, 3212, 3214,3216, 3218, 3220, 3222, and the computer-readable medium/memory 3306.The bus 3324 may also link various other circuits such as timingsources, peripherals, voltage regulators, and power management circuits,which are well known in the art, and therefore, will not be describedany further.

The processing system 3314 may be coupled to a transceiver 3310. Thetransceiver 3310 is coupled to one or more antennas 3320. Thetransceiver 3310 provides a means for communicating with various otherapparatus over a transmission medium. The transceiver 3310 receives asignal from the one or more antennas 3320, extracts information from thereceived signal, and provides the extracted information to theprocessing system 3314, specifically the reception component 3204. Inaddition, the transceiver 3310 receives information from the processingsystem 3314, specifically the transmission component 3222, and based onthe received information, generates a signal to be applied to the one ormore antennas 3320. The processing system 3314 includes a processor 3304coupled to a computer-readable medium/memory 3306. The processor 3304 isresponsible for general processing, including the execution of softwarestored on the computer-readable medium/memory 3306. The software, whenexecuted by the processor 3304, causes the processing system 3314 toperform the various functions described supra for any particularapparatus. The computer-readable medium/memory 3306 may also be used forstoring data that is manipulated by the processor 3304 when executingsoftware. The processing system further includes at least one of thecomponents 3204, 3206, 3210, 3212, 3214, 3216, 3218, 3220, 3222. Thecomponents may be software components running in the processor 3304,resident/stored in the computer-readable medium/memory 3306, one or morehardware components coupled to the processor 3304, or some combinationthereof. The processing system 3314 may be a component of the UE 650 andmay include the memory 660 and/or at least one of the TX processor 668,the RX processor 656, and the controller/processor 659.

In one configuration, the apparatus 3202/3202′ for wirelesscommunication includes means for receiving, from a second UE, a firstsignal including a first expression code associated with the second UE,means for determining at least a second expression code using the firstexpression code, the at least a second expression code associated withthe second UE, means for discovering a second UE through a ProSediscovery, BTLE discovery, or WFA NAN discovery, means for sending, to anetwork device, a request for location information associated with thesecond UE, means for receiving the location information when the firstUE is authorized to receive the location information, means forreceiving, from the network device, a message including alocation-carrying code to be announced by the second UE along with thelocation information, means for processing the broadcast message usingthe location-carrying code, means for receiving, from the networkdevice, a message including the security key to enable deciphering ofthe location information to be announced by the second UE, means forprocessing the broadcast message using the security key, means forreceiving, from a second UE, a first signal including a first expressioncode associated with the second UE, means for determining first metadataassociated with the first expression code, means for monitoring for asecond signal from the second UE based on the first metadata, the secondsignal including a second expression code that includes a first locationof the second UE, means for determining the first location of the secondUE from the second expression code using the first metadata, means forreceiving, from the second UE, a third signal including a thirdexpression code associated with the second UE, means for determiningsecond metadata associated with the third expression code, means fordetermining a second location of the second UE from the second metadata.

The aforementioned means may be one or more of the aforementionedcomponents of the apparatus 3202 and/or the processing system 3314 ofthe apparatus 3202′ configured to perform the functions recited by theaforementioned means. As described supra, the processing system 3314 mayinclude the TX Processor 668, the RX Processor 656, and thecontroller/processor 659. As such, in one configuration, theaforementioned means may be the TX Processor 668, the RX Processor 656,and the controller/processor 659 configured to perform the functionsrecited by the aforementioned means.

FIG. 34 is a conceptual data flow diagram 3400 illustrating the dataflow between different components/means/components in an exemplaryapparatus 3402. The apparatus may be an announcing UE (e.g., second UE1702, 1802, 1902, 2102, 2202, 2302). The apparatus includes a component3404 that receives transmissions from a network device (e.g., networkdevice 3460), a component 3406 that determines a first location of theannouncing UE when the announcing UE is stationary, determines a secondlocation of the announcing UE when the announcing UE is moving, anddetermines a third location of the announcing UE when the announcing UEis no longer moving. A component 3408 that updates the first metadatastored in the server with second metadata, and that updates the secondmetadata stored in the server with third metadata, the third metadataindicating the third location. A component 3410 that transmits a firstsignal including a first expression code, the first expression codeassociated with first metadata stored in a server, the first metadataindicating the first location, transmits a second signal including asecond expression code, the second expression code associated with thesecond metadata, transmits a third signal including a third expressioncode, the third expression code indicating the second location, wherethe second metadata is configured to enable decoding of the thirdexpression code, transmits a fourth signal including a fourth expressioncode, the fourth expression code associated with the third metadata.

The apparatus may include additional components that perform each of theblocks of the algorithm in the aforementioned flow chart of FIG. 28. Assuch, each block in the aforementioned flow chart of FIG. 28 may beperformed by a component and the apparatus may include one or more ofthose components. The components may be one or more hardware componentsspecifically configured to carry out the stated processes/algorithm,implemented by a processor configured to perform the statedprocesses/algorithm, stored within a computer-readable medium forimplementation by a processor, or some combination thereof.

FIG. 35 is a diagram 3500 illustrating an example of a hardwareimplementation for an apparatus 3402′ employing a processing system3514. The processing system 3514 may be implemented with a busarchitecture, represented generally by the bus 3524. The bus 3524 mayinclude any number of interconnecting buses and bridges depending on thespecific application of the processing system 3514 and the overalldesign constraints. The bus 3524 links together various circuitsincluding one or more processors and/or hardware components, representedby the processor 3504, the components 3404, 3406, 3408, 3410, and 3412,and the computer-readable medium/memory 3506. The bus 3524 may also linkvarious other circuits such as timing sources, peripherals, voltageregulators, and power management circuits, which are well known in theart, and therefore, will not be described any further.

The processing system 3514 may be coupled to a transceiver 3510. Thetransceiver 3510 is coupled to one or more antennas 3520. Thetransceiver 3510 provides a means for communicating with various otherapparatus over a transmission medium. The transceiver 3510 receives asignal from the one or more antennas 3520, extracts information from thereceived signal, and provides the extracted information to theprocessing system 3514, specifically the reception component 3404. Inaddition, the transceiver 3510 receives information from the processingsystem 3514, specifically the transmission component 3412, and based onthe received information, generates a signal to be applied to the one ormore antennas 3520. The processing system 3514 includes a processor 3504coupled to a computer-readable medium/memory 3506. The processor 3504 isresponsible for general processing, including the execution of softwarestored on the computer-readable medium/memory 3506. The software, whenexecuted by the processor 3504, causes the processing system 3514 toperform the various functions described supra for any particularapparatus. The computer-readable medium/memory 3506 may also be used forstoring data that is manipulated by the processor 3504 when executingsoftware. The processing system further includes at least one of thecomponents 3404, 3406, 3408, 3410, and 3412. The components may besoftware components running in the processor 3504, resident/stored inthe computer-readable medium/memory 3506, one or more hardwarecomponents coupled to the processor 3504, or some combination thereof.The processing system 3514 may be a component of the UE 650 and mayinclude the memory 660 and/or at least one of the TX processor 668, theRX processor 656, and the controller/processor 659.

In one configuration, the apparatus 3402/3402′ for wirelesscommunication includes means for means for transmitting a first locationof the announcing UE when the announcing UE is stationary, means fortransmitting a first signal including a first expression code, the firstexpression code associated with first metadata stored in a server, thefirst metadata indicating the first location, means for determining asecond location of the announcing UE when the announcing UE is moving,means for updating the first metadata stored in the server with secondmetadata, means for transmitting a second signal including a secondexpression code, the second expression code associated with the secondmetadata, means for broadcasting a third signal including a thirdexpression code, the third expression code indicating the secondlocation, wherein the second metadata is configured to enable decodingof the third expression code, means for determining a third location ofthe announcing UE when the announcing UE is no longer moving, means forupdating the second metadata stored in the server with third metadata,the third metadata indicating the third location, and means fortransmitting a fourth signal including a fourth expression code, thefourth expression code associated with the third metadata. Theaforementioned means may be one or more of the aforementioned componentsof the apparatus 3402 and/or the processing system 3514 of the apparatus3402′ configured to perform the functions recited by the aforementionedmeans. As described supra, the processing system 3514 may include the TXProcessor 668, the RX Processor 656, and the controller/processor 659.As such, in one configuration, the aforementioned means may be the TXProcessor 668, the RX Processor 656, and the controller/processor 659configured to perform the functions recited by the aforementioned means.

FIG. 36 is a diagram illustrating an embodiment of a mobile network3600. In an aspect, the mobile network 3600 includes a number of userswith ProSe-enabled UEs 3602, 3604. According to various aspects, a firstUE 3602 may be configured to monitor for device discovery and a secondUE 3604 may be configured to announce for device discovery. For example,the second UE 3604 may periodically broadcast (e.g., announce) a firstsignal 3610 that enables discovery by another UE (e.g., a first UE3602). In such example, a first UE 3602 may discover a second UE 3604 inproximity that offers service and/or content of interest. However, thefirst UE 3602 performing discovery may not be able to determine thelocations of discovered UEs. It is to be appreciated that either one orboth of the UEs 3602, 3604 may perform both announcement and discovery.

The mobile network may further include a network device 3612. Thenetwork device 3612 may include a ProSe Function. In the presentdisclosure, a ProSe Function may refer to a logical function forproximity services implemented by a server or other network entity. Thenetwork device 3612 may be configured to allocate expression codes(e.g., ProSe application codes), look up expression codes (e.g., ProSeapplication identifiers and/or ProSe application names), and/or storemetadata associated with expression codes ( ). The network device 3612may be configured to communicate with UEs over various data paths—e.g.,the network device 3612 may communicate with the second UE 3604 over afirst data path 3620, and the network device 3612 may communicate withthe first UE 3602 over the second data path 3622. The data paths 3620,3622 may be wireless data paths, for example, in a WWAN.

According to an aspect, the network device 3612 includes metadata 3614associated with location information of one or more UEs that areconfigured to announce their location. Metadata 3614 may be associatedwith a particular UE, a particular expression code, and/or a particularservice or content. In various aspects, a UE may match a firstexpression code and may contact the network device 3612 to requestmetadata 3614 associated with the first expression code, such as anotherexpression code (e.g., a dependent expression code) associated with thelocation information associated with the first expression code.

According to an aspect, a second UE 3604 may be configured to broadcasta first signal 3610. The first signal 3610 may be communicated on adiscovery resource (e.g., a set of subcarriers in a subframe scheduledfor device discovery). The first signal 3610 may include a firstexpression code 3611. The first expression code 3611 may be associatedwith a service and/or content that may be offered by the second UE 3604.In some aspects, the first expression code 3611 may include a PrimaryCode. In some aspects, the first expression code may be associated witha ProSe Application ID, which may otherwise be referred to herein as aProSe Application Name and/or PAI. For example, the second UE 3604 maybe an ice cream truck and the first expression code 3611 may indicatethat the second UE 3604 is an ice cream truck (or provides such aservice), for example, to an application of a monitoring UE (e.g., thefirst UE 3602).

In an aspect, the first expression code 3611 may be Code A 1316, asillustrated in FIG. 13 of the present disclosure. Accordingly, the firstsignal 3610 may be broadcast as discovery resource 1314. In anotheraspect, the first expression code 3611 may be of a format as illustratedin FIG. 14 of the present disclosure. For example, the first expressioncode 3611 may include a type 1412, a non-unique prefix 1414, and aunique discriminator.

Alternatively, the first expression code 3611 may be private. Forexample, the first expression code 3611 may include a restricteddiscovery type 1422, a unique prefix 1424 that may be an obfuscatedidentifier of an application, and a non-unique suffix 1426 that may beapplication specific information. The first expression code 3611 may beof another format in another aspect.

In an aspect, a private expression code may be shorter than a publicexpression code and so the second UE 3604 may be configured to broadcasttwo private expression codes, including the first expression code 3611,in a single discovery resource 1314, which may be broadcast as the firstsignal 3610. In such aspects, each private expression code may havedifferent metadata associated therewith at the network device 3612,including metadata 3614.

In an aspect, the second UE 3604 may be configured to receive the firstexpression code 3611 from the network device 3612. The second UE 3604may transmit an indication of a content and/or service to the networkdevice 3612 over the data path 3620. For example, the second UE 3604 maytransmit a ProSe Application ID to the network device 3612. In response,the network device 3612 may transmit the first expression code 3611 tothe second UE 3604 over the data path 3620.

The second UE 3604 may broadcast the first expression code 3611 inassociation with location information for the second UE 3604. Forexample, the first expression code 3611 may be associated with a serviceand/or content for which location information is available for thesecond UE 3604. In one aspect, the first signal 3610 may include one ormore bits (e.g., a flag or other bit sequence) that indicate locationinformation is available for the second UE 3604. However, the locationinformation for the second UE 3604 may be independently available fromthe first signal 3610—e.g., the size of the first expression code 3611may consume an entire discovery resource (e.g., 160 bits) so thatlocation information is to be made separately available and/or thelocation information may be separately available due to privacyconcerns.

Independent of the first signal 3610, the second UE 3604 may broadcast(e.g., announce) a second signal 3606. The second signal 3606 may becommunicated on another discovery resource (e.g., a set of subcarriersin a subframe scheduled for device discovery). In an aspect, the secondsignal 3606 may include a second expression code 3607. In an aspect, thesecond expression code 3607 may be Code B 1324, as illustrated in FIG.13 of the present disclosure. Accordingly, the second signal 3606 may becommunicated on the discovery resource 1322.

The second expression code 3607 may be associated with the firstexpression code 3611, for example, the second expression code 3607 maybe referred to as a dependent expression code for the first expressioncode 3611. In another aspect, the second expression code 3607 may not beexplicitly associated with the first expression code 3611 at the networkdevice 3612 and/or at the second UE 3604.

In various aspects, the second UE 3604 may communicate with a networkdevice 3612 in association with broadcasting the second expression code3607. The second UE 3604 may be configured to determine the secondexpression code 3607. In one aspect, the second UE 3604 may generate thesecond expression code 3607. In an aspect, the second UE 3604 requeststhe network device 3612 to update metadata 3614 associated with thesecond UE 3604. For example, the second UE 3604 may request, over thedata path 3620, that the network device 3612 update metadata 3614associated with location information for the second UE 3604. Therequested update to metadata 3614 may cause the network device 3612 tostore metadata 3614 associated with the second expression code 3607 inconnection with one or more of the second UE 3604, the first expressioncode 3611, and/or a service or content offered by the second UE 3604.According to an aspect, metadata 3614 may include the second expressioncode 3607.

According to another aspect, the second UE 3604 may receive the secondexpression code 3607 from the network device 3612. For example, thesecond UE 3604 may send a request for the second expression code 3607 tothe network device 3612 over the data path 3620. In response, thenetwork device 3612 may provide, over the data path 3620, the secondexpression code 3607 to the second UE 3604. In various aspects, thenetwork device 3612 may generate the second expression code 3607, suchas through application of a function to the first expression code 3611or through random generation of a bit sequence that is suitable forwireless transmission. The network device 3612 may store the secondexpression code 3607 in metadata 3614 associated with the second UE3604.

According to an aspect, the second UE 3604 may request that the networkdevice 3612 update metadata 3614 in response to a change in location ofthe second UE 3604. For example, the second UE 3604 may detect that thesecond UE 3604 is moving and, based on the detected movement, mayrequest that the network device 3612 update metadata 3614 to indicatethat a monitoring UE (e.g., the first UE 3602) is to monitor for thesecond expression code 3607 based on metadata 3614. This configurationmay reduce communication by a monitoring UE with the network device3612, for example, when the second UE 3604 is frequently moving and/orlocation information associated with the second UE 3604 may need to befrequently accessed by the other UE.

According to an aspect, the first expression code 3611 and the secondexpression code 3607 may be linked at a discovery service layer, such asthe discovery service layer 914 of the mobile device 902 illustrated inFIG. 9. This linking of the first expression code 3611 and the secondexpression code 3607 may appear at one or both of the second UE 3604 andthe first UE 3602. This linking of the first expression code 3611 andthe second expression code 3607 may occur below an application layer(e.g., below application 910 of FIG. 9) and may be transparent to anapplication of the second UE 3604 and/or first UE 3602 (e.g.,transparent to an application 910 of a mobile device 902).

According to aspects, the second UE 3604 may be configured to determinelocation information associated with the second UE 3604. In variousaspects, the location information may include one or more of geographiccoordinates (e.g., coordinates based on latitude and longitude), GPSdata, network-assisted positioning (e.g., via WiFi™ network scanning),and/or other location specific data that may be provided through aglobal navigation satellite system (GNSS).

The second UE 3604 may generate the second signal 3606 to include thelocation information 3608. Accordingly, the second signal 3606 mayinclude both the second expression code 3607 and the locationinformation 3608. In one aspect, the second expression code 3607 may bea “prefix” of a discovery resource, while the location information 3608may be a “suffix” of that discovery resource. For example, the secondexpression code 3607 may include Code B 1324 of discovery resource 1322,and the location information 3608 may include Code C 1326 of the samediscovery resource 1322. It will be appreciated that the secondexpression code may appear in a different order (e.g., the locationinformation 3608 may precede the second expression code 3607 in adiscovery resource). In one aspect, the second UE 3604 may encode and/orcompress the location information 3608.

In one aspect, the second UE 3604 may broadcast a plurality ofexpression codes, including the first expression code 3611, inassociation with availability of location information for the second UE3604, such as where the second UE 3604 offers a plurality of contentand/or services. However, because the location information for thesecond UE 3604 may be the same for all of the plurality, the second UE3604 may only need to broadcast the second expression code 3607 with thelocation information 3608 to provide location information in associationwith all broadcasted expression codes indicating content and/or services(e.g., primary expression codes), including the first expression code3611.

In various aspects, the second UE 3604 may detect a change in locationof the second UE 3604, such as where the second UE 3604 is moving. Basedon a change in location, the second UE 3604 may request that the networkdevice 3612 update metadata 3614 associated with the second UE 3604. Inan aspect, the second UE 3604 may update the expression code broadcastedin connection with the updated location information. The second UE 3604may then broadcast this updated expression code with updated locationinformation, for example, in a third signal similar to the second signal3606.

According to aspects, the first UE 3602 may monitor for signals fromother UEs. For example, the first UE 3602 may monitor discoveryresources and/or a discovery channel to discover other UEs that offerservices and/or content that may be of interest to the first UE 3602.For example, the first UE 3602 may monitor for an ice cream truck thatis proximate to the first UE 3602. According to an aspect, the serviceand/or content may be of interest to an application of the first UE3602, such as an application 910 of FIG. 9. However, monitoring of adiscovery channel and/or discovery resources may occur at a lower layer,such as a discovery service layer 914 of the mobile device 902illustrated in FIG. 9.

According to some aspects in which the service and/or content providedby the second UE 3604 is private, the first UE 3602 may be informed ofthe first expression code 3611. For example, the first UE 3602 maydetermine the first expression code 3611 when the first UE 3602 is anauthorized monitoring device, such as based on metadata that may bereceived out-of-band and/or from an application 910.

The first UE 3602 may detect the first signal 3610 broadcasted by thesecond UE 3604. From the first signal 3610, the first UE 3602 may decodethe first expression code 3611. The first UE 3602 may determine that thefirst expression code 3611 is of interest to the first UE 3602. Forexample, the first UE 3602 may determine that the second UE 3604 offersservices and/or content that is of interest to the first UE 3602—e.g.,the first expression code 3611 may indicate that the second UE 3604 isan ice cream truck.

According to various aspects, the first expression code 3611 may beassociated with availability of location information for the second UE3604. In one aspect, the first signal 3610 may include one or more bits(e.g., a flag or bit sequence) that indicate location information isavailable for the second UE 3604. Detection of the one or more bits mayindicate to the first UE 3602 that the first UE 3602 is to continue tomonitor for location information for the second UE 3604. In anotheraspect, the first UE 3602 has stored therein information that detectionof the first expression code 3611 indicates location information may beavailable for the second UE 3604.

In the context of FIG. 9, for example, a match on the first expressioncode 3611 may indicate to a discovery service layer 914 that thediscovery service layer 914 is to monitor for another signal thatindicates the location information for the second UE 3604—e.g., so thatlocation information may be provided to an application 910. Thediscovery service layer 914 may detect this indication that thediscovery service layer 914 is to monitor for the location informationbased on a flag in the first signal 3610 and/or other information, suchas information stored at the first UE 3602 (e.g., at the discoveryservice layer 914 of the first UE 3602).

Based on the determination that the first expression code 3611 is ofinterest to the first UE 3602, the first UE 3602 may determine a secondexpression code 3607 associated with the location information. Invarious aspects, the first UE 3602 may request metadata associated withlocation information for the second UE 3604, for example, in response toa match on the first expression code 3611 and determination thatlocation information is available. Accordingly, the first UE 3602 maytransmit, to the network device 3612 over the data path 3622, a requestfor metadata 3614 associated with the location information for thesecond UE 3604.

In various aspects, the first UE 3602 may transmit a request formetadata 3614 that includes one or more of the first expression code3611, an indication of the service and/or content, or other indicationthat the first UE 3602 detects a match based on the first expressioncode 3611. In one aspect, the request for metadata 3614 may include amatch report, as described in various aspects of the present disclosure.

In response to the request, the network device 3612 may transmit, overthe data path 3622, metadata 3614 associated with the locationinformation for the second UE 3604. This metadata 3614 may include anindication of the second expression code 3607. In another aspect, thismetadata 3614 may include information from which the first UE 3602 maydetermine the second expression code 3607. In such an aspect, the firstUE 3602 may be configured to generate (e.g., derive) the secondexpression code 3607 from the received metadata 3614, for example, basedon application of a function (e.g., a time varying hash function orother function associated with LTE-Direct and/or ProSe discovery).Accordingly, metadata 3614 may indicate to the first UE 3602 that thefirst UE 3602 is to monitor for the second expression code 3607 todetect the location information for the second UE 3604 and that thelocation information for the second UE 3604 is not available at thenetwork device 3612, as may be the case when the second UE 3604 iscurrently and/or is frequently moving.

In aspects, the first UE 3602 may begin to monitor for the secondexpression code 3607. The first UE 3602 may receive the second signal3606 and decode the second expression code 3607 included therein todetermine that the second signal 3606 includes location information forthe second UE 3604 and is of interest to the first UE 3602.

Based on receiving the second signal 3606 and decoding the secondexpression code 3607 to determine a match, the first UE 3602 may decodeand/or extract the location information 3608 included in the secondsignal 3606. In various aspects, the location information may includeone or more of geographic coordinates (e.g., coordinates based onlatitude and longitude), GPS data, and/or other location specific datathat may be provided through a GNSS.

In the context of FIG. 9, for example, decoding the second expressioncode 3607 may indicate to a discovery service layer 914 that thediscovery service layer 914 is to decode and/or to extract a portion ofthe second signal 3606 that includes the location information for thesecond UE 3604. The discovery service layer 914 may provide thislocation information to an application 910. The discovery service layer914 may detect this indication that the discovery service layer 914 isto monitor for the location information based on a flag in the firstsignal 3610 and/or other information, such as information stored at thefirst UE 3602 (e.g., at the discovery service layer 914 of the first UE3602). Accordingly, the application 910 of the first UE 3602 may track,display, or otherwise process the location information for the second UE3604.

In an aspect, the first UE 3602 may receive a plurality of signals,including the second signal 3606, during periods allocated for devicediscovery. The first UE 3602 may cache information from those signals,including the second expression code 3607 and the location information3608, received during a device discovery period (although the first UE3602 may not have decoded the second expression code 3607 and/or thelocation information 3608). Thus, when the first UE 3602 detects a matchon a first expression code 3611 and communicates with the network device3612 to receive metadata 3614 from which the first UE 3602 may determinethe second expression code 3607, the first UE 3602 may access the cachedinformation (including the received second expression code) to decodethe location information 3608 without waiting for a subsequent devicediscovery period.

In the context of FIG. 13, for example, the first UE 3602 may receiveCode A 1316 (e.g., the first expression code 3611) during devicediscovery period 1318, but may have cached Code B 1324 (e.g., the secondexpression code 3607) and location information (e.g., in subcarriers ofthe subframe allocated for Code C 1326) from a discovery resource 1322received at a previous device discovery period 1304. When the first UE3602 subsequently receives and matches on Code A 1316 (e.g., the firstexpression code 3611), the first UE 3602 may access the cached Code B1324 (e.g., the second expression code 3607) and decode and/or extractthe location information in association with the match without having towait for a next device discovery period.

FIG. 37 is a diagram illustrating an embodiment of a mobile network3700. In an aspect, the mobile network 3700 includes a number of userswith ProSe-enabled UEs 3702, 3704. According to various aspects, a firstUE 3702 may be configured to monitor for device discovery and a secondUE 3704 may be configured to announce for device discovery. For example,the second UE 3704 may periodically broadcast (e.g., announce) a firstsignal 3710 that enables discovery by another UE (e.g., the first UE3702). In such example, the first UE 3702 may discover the other UE 3704in proximity that offers a service or content of interest. However, thefirst UE 3702 performing discovery may not be able to accuratelydetermine the locations of the discovered UEs. It is to be appreciatedthat either one or both of the UEs 3702, 3704 may perform bothannouncement and discovery.

According to an aspect, the second UE 3704 may be configured tobroadcast a first signal 3710. The first signal 3710 may be communicatedon a discovery resource (e.g., a set of subcarriers in a subframescheduled for device discovery). The first signal 3710 may include afirst expression code 3711. The first expression code 3711 may beassociated with a service and/or content that may be offered by thesecond UE 3704. In some aspects, the first expression code 3711 mayinclude a Primary Code. For example, the second UE 3704 may be an icecream truck and the first expression code 3711 may correspond to a ProSeApplication ID (e.g., an application ID and/or name for finding an icecream truck).

In an aspect, the first expression code 3711 may be Code A 1316, asillustrated in FIG. 13 of the present disclosure. Accordingly, the firstsignal 3710 may be communicated on a discovery resource 1314. In anotheraspect, the first expression code 3711 may be of a format as illustratedin FIG. 14 of the present disclosure. For example, the first expressioncode 3711 may include a type 1412, a non-unique prefix 1414, and aunique discriminator.

Alternatively, the first expression code 3711 may be private.Accordingly, the first expression code 3711 may include a restricteddiscovery type 1422, a non-unique prefix 1424 that may be an obfuscatedidentifier of an application, and a non-unique suffix 1426 that may beapplication specific information. The first expression code 3711 may beof another format in another aspect. In an aspect, a private expressioncode may be shorter than a public expression code and so the second UE3704 may be configured to broadcast two private expression codes,including the first expression code 3711, on a single discovery resource1314.

The second UE 3704 may broadcast the first expression code 3711 inassociation with location information for the second UE 3704. Forexample, the first expression code 3711 may be associated with a serviceand/or content for which location information is available for thesecond UE 3704. In one aspect, the first signal 3710 may include one ormore bits (e.g., a flag or bit sequence) that indicate locationinformation is available for the second UE 3704. In an aspect, the oneor more bits may indicate that location information is available for thesecond UE 3604.

However, the location information for the second UE 3704 may beindependently available from the first signal 3710—e.g., the size of thefirst expression code 3711 may consume an entire discovery resource(e.g., 160 bits) so that location information must be made separatelyavailable and/or the location information may be separately availabledue to privacy concerns.

In various aspects, the second UE 3704 may broadcast a second expressioncode 3707. The second expression code 3707 may be associated with thefirst expression code 3711, for example, the second expression code 3707may be referred to as a dependent expression code for the firstexpression code 3711.

The second UE 3704 may be configured to determine the second expressioncode 3707. In one aspect, the second UE 3704 may generate the secondexpression code 3707 based on the first expression code 3711. Forexample, the second UE 3704 may generate the second expression code 3707based on application of a function to the first expression code 3711.The function may be a well-known hash function, such as a Secure HashAlgorithm (SHA) hash function or Message Digest (MD) hash function(e.g., MD5 hash function). In another aspect, the function may beassociated with LTE-Direct and/or ProSe discovery, such as a timevarying hash function.

According to an aspect, the first expression code 3711 and the secondexpression code 3707 may be linked at a discovery service layer, such asthe discovery service layer 914 of the mobile device 902 illustrated inFIG. 9. This linking of the first expression code 3711 and the secondexpression code 3707 may appear at one or both of the second UE 3704 andthe first UE 3702. This linking of the first expression code 3711 andthe second expression code 3707 may occur below an application layer(e.g., below application 910 of FIG. 9) and may be transparent to anapplication of the second UE 3704 and/or first UE 3702 (e.g.,transparent to an application 910 of a mobile device 902).

Independent of the first signal 3710, the second UE 3704 may broadcast(e.g., announce) a second signal 3706. The second signal 3706 may becommunicated on another discovery resource (e.g., a set of subcarriersin a subframe scheduled for device discovery). In an aspect, the secondsignal 3706 may include the second expression code 3707. In an aspect,the second expression code 3707 may be Code B 1324, as illustrated inFIG. 13 of the present disclosure. Accordingly, the second signal 3706may be communicated on discovery resource 1322.

According to aspects, the second UE 3704 may be configured to determinelocation information associated with the second UE 3704. In variousaspects, the location information may include one or more of geographiccoordinates (e.g., coordinates based on latitude and longitude), GPSdata, network-assisted positioning (e.g., via WiFi™ network scanning),and/or other location specific data that may be provided through a GNSS.

The second UE 3704 may generate the second signal 3706 to include thelocation information 3708. Accordingly, the second signal 3706 mayinclude both the second expression code 3707 and the locationinformation 3708. The second UE 3704 may generate the second signal 3706to include the location information 3708. Accordingly, the second signal3706 may include both the second expression code 3707 and the locationinformation 3708. In one aspect, the second expression code 3707 may bea “prefix” of a discovery resource, while the location information 3708may be a “suffix” of that discovery resource.

In one aspect, the second UE 3704 may encode and/or compress thelocation information 3708. According to such an aspect, the encodedand/or compressed location information 3708 may be Code C 1326 ofdiscovery resource 1322, as illustrated in FIG. 13 of the presentdisclosure. However, it will be appreciated that the second expressioncode 3707 and the location information 3708 may appear in any order on adiscovery resource.

In one aspect, the second UE 3704 may broadcast a plurality of firstexpression codes, including the first expression code 3711, for example,to indicate a plurality of services and/or content available at thesecond UE 3704 and in association with availability of locationinformation for the second UE 3704. The second UE 3704 may be configuredto generate a respective second expression code based on a respectivefirst expression code and broadcast the respective second expressioncode with location information for the second UE 3704.

In various aspects, the second UE 3704 may detect a change in locationof the second UE 3704, such as where the second UE 3704 is moving. Thus,the second UE 3704 may continually and/or periodically broadcast thesecond signal 3706 to include the second expression code 3707 andchanged (e.g., updated) location information. In broadcasting a secondexpression code 3707 that may be determined from the first expressioncode 3711, a monitoring UE (e.g., the first UE 3702) may reduce oreliminate communication with other devices (e.g., a network device orProSe Function) when determining the location information of the secondUE 3704. This approach may be advantageous when the second UE 3704 ismoving and/or frequently changing locations, in that a monitoring UE maydetermine the location information of the second UE 3704 withoutoverhead costs (e.g., time) commensurate with communicating with anotherdevice to determine the location information of the second UE 3704.

According to aspects, the first UE 3702 may monitor for signals fromother UEs. For example, the first UE 3702 may monitor a discoverychannel to discover other UEs that offer services and/or content thatmay be of interest to the first UE 3702. For example, the first UE 3702may monitor for an ice cream truck that is proximate to the first UE3702. According to an aspect, the service and/or content may be ofinterest to an application of the first UE 3702, such as an application910 of FIG. 9. However, monitoring of a discovery channel may occur at alower layer, such as a discovery service layer 914 of the mobile device902 illustrated in FIG. 9.

The first UE 3702 may detect the first signal 3710 broadcast by thesecond UE 3704. From the first signal 3710, the first UE 3702 may decodethe first expression code 3711. The first UE 3702 may determine that thefirst expression code 3711 is of interest to the first UE 3702. Forexample, the first UE 3702 may determine that the second UE 3704 offersservices and/or content that is of interest to the first UE 3702—e.g.,the first expression code 3711 may indicate that the second UE 3704 isan ice cream truck.

According to various aspects, the first expression code 3711 may beassociated with availability of location information for the second UE3704. In one aspect, the first signal 3710 may include one or more bits(e.g., a flag or bit sequence) that indicate location information isavailable for the second UE 3704. In an aspect, the one or more bits mayindicate that the second UE 3704 is to broadcast location information.Detection of the one or more bits may indicate to the first UE 3702 thatthe first UE 3702 is to monitor for location information for the secondUE 3704. In another aspect, the first UE 3702 has stored thereininformation that detection of the first expression code 3711 indicateslocation information may be available for the second UE 3704.

In the context of FIG. 9, for example, a match on the first expressioncode 3711 may indicate to a discovery service layer 914 that thediscovery service layer 914 is to monitor for another signal thatindicates the location information for the second UE 3704—e.g., so thatlocation information may be provided to an application 910. Thediscovery service layer 914 may detect this indication that thediscovery service layer 914 is to monitor for the location informationbased on a flag in the first signal 3710 and/or other information, suchas information stored at the first UE 3702 (e.g., at the discoveryservice layer 914 of the first UE 3702).

Based on a determination that location information is available for thesecond UE 3704 in connection with the first expression code 3711, thefirst UE 3702 may determine a second expression code 3707 associatedwith the location information. In various aspects, the first UE 3702 maydetermine a second expression code 3707 based on the first expressioncode 3711. For example, the first UE 3702 may generate the secondexpression code 3707 based on application of a function to the firstexpression code 3711. The function may be a well-known hash function,such as a SHA hash function or MD hash function (e.g., MD5 hashfunction). In another aspect, the function may be associated withLTE-Direct and/or ProSe discovery, such as a time varying hash function.The function may be known to both the second UE 3704 and the first UE3702.

In aspects, the first UE 3702 may monitor for the second expression code3707. The first UE 3702 may receive the second signal 3706 and decodethe second expression code 3707 included therein to determine that thesecond signal 3706 includes location information for the second UE 3704and is of interest to the first UE 3702.

In an aspect, the first UE 3702 may receive a plurality of signals,including the second signal 3706, during periods allocated for devicediscovery. The first UE 3702 may cache information from those signals,including the second expression code 3707 and the location information3708, received during a device discovery period (although the first UE3602 may not have decoded the second expression code 3607 and/or thelocation information 3608). Thus, when the first UE 3702 detects a matchon a first expression code 3711, the first UE 3602 may access the cachedinformation to decode the second expression code 3607 and the locationinformation 3608 without waiting for another device discovery period.

In the context of FIG. 13, for example, the first UE 3702 may receiveCode A 1316 (e.g., the first expression code 3711) during devicediscovery period 1318, but may have cached Code B 1324 (e.g., the secondexpression code 3707) and location information (e.g., in subcarriers ofthe subframe allocated for Code C 1326) from discovery resource 1322received during a previous device discovery period 1304. When the firstUE 3702 subsequently receives and matches on Code A 1316 (e.g., thefirst expression code 3611), the first UE 3602 may access the cachedCode B 1324 (e.g., the second expression code 3707) and decode thelocation information 3708 in association with the match without havingto wait for a subsequent device discovery period.

Based on receiving the second signal 3706 and decoding the secondexpression code 3707, the first UE 3702 may decode and/or extract thelocation information 3708 included in the second signal 3706. In variousaspects, the location information 3708 may include one or more ofgeographic coordinates (e.g., coordinates based on latitude andlongitude), GPS data, and/or other location specific data that may beprovided through a GNSS.

In the context of FIG. 9, for example, decoding the second expressioncode 3707 may indicate to a discovery service layer 914 that thediscovery service layer 914 is to decode and/or to extract a portion ofthe second signal 3706 that includes the location information 3708 forthe second UE 3704. The discovery service layer 914 may provide thislocation information 3708 to an application 910. The discovery servicelayer 914 may detect this indication that the discovery service layer914 is to monitor for the location information based on a flag or bitsequence of the first signal 3710 and/or other information, such asinformation stored at the first UE 3702 (e.g., at the discovery servicelayer 914 of the first UE 3702). Accordingly, the application 910 of thefirst UE 3702 may track, display, or otherwise process the locationinformation 3708 for the second UE 3704.

According to an aspect, the second UE 3604 of FIG. 36 and the second UE3704 of FIG. 37 may be a same or similar UE capable of at least aportion of operations described with respect to both FIG. 36 and FIG.37. Similarly, the first UE 3602 of FIG. 36 and the first UE 3702 ofFIG. 37 may be a same or similar UE capable of at least a portion ofoperations described with respect to both FIG. 36 and FIG. 37.

In an aspect, the mobile network of FIG. 37 may include a networkdevice, such as the network device 3612 of FIG. 36. Thus, the first UE3702 and the second UE 3704 may communicate with a network device (e.g.,the network device 3612) according to various approaches described withrespect to the first UE 3602 and the second UE 3604 of FIG. 36.

In some aspects, a second UE 3604/3704 may use metadata versioning toindicate that the second UE 3604/3704 is transitioning betweenstationary and moving states. For example, the second UE 3604/3704 maycause metadata 3614 to be stored at the network device 3612 indicatingthat the second UE 3604/3704 is stationary and a first UE 3602/3702 isto use metadata 3614 retrieved from the network device 3612 to decodethe location information 3608 associated for the second UE 3604/3704.When the second UE 3604/3704 is moving, the second UE 3604/3704 maycause metadata 3614 to be stored in the network device 3612 to indicatethat the first UE 3602/3702 should determine the second expression code3707 based on the first expression code 3711 and monitor for the secondexpression code 3707 to decode the location information 3708. In oneaspect, the second UE 3604/3704 may include an indication of whether thelocation information is broadcast or is stored in metadata 3614 in thefirst signal 3610/3710, such as in a flag or bit sequence.

In an aspect, the second UE 3704 may be configured to communicate with anetwork device, such as the network device 3612 of FIG. 36. The secondUE 3704 may be configured to transmit an indication of a content and/orservice to the network device 3612. For example, the second UE 3704 maytransmit a ProSe Application ID to the network device 3612. In response,the network device 3612 may transmit the first expression code 3711 tothe second UE 3704.

FIGS. 38A and 38B are diagrams illustrating generation of expressioncodes for device discovery in a network, in accordance with variousaspects of the present disclosure. As shown in FIG. 38A, a firstexpression code 3811 (e.g., a primary expression code) may have appliedthereto a function 3812. The function 3812 may be a well-known hashfunction, such as a SHA hash function or MD hash function (e.g., MD5hash function). In another aspect, the function 3812 may be associatedwith LTE-Direct and/or ProSe discovery, such as a time varying hashfunction. Application of the function 3812 to the first expression code3811 may generate a second expression code 3806.

In the context of FIG. 37, for example, a second UE 3704 may apply thefunction 3812 to the first expression code 3811 (e.g., the firstexpression code 3711) to generate another expression code 3806. In anaspect, the application of the function 3812 to the first expressioncode 3811 may generate a second expression code 3806, which may be thesecond expression code 3707 of FIG. 37. In an aspect, the function 3812may truncate bits—e.g., from a result of application to a hash functionto the first expression code 3811—so that the second expression code3806 is of a size suitable to be included on a discovery resource withlocation information.

Like the second UE 3704, the first UE 3702 may apply the function 3812to the first expression code 3811 (e.g., the first expression code 3711)to generate another expression code 3806, which may be truncated asdescribed above. In aspects, the function 3812 may be known to both thefirst UE 3702 and the second UE 3704. Therefore, both the first UE 3702and the second UE 3704 may generate a same second expression code 3806.Thus, when the first UE 3702 is monitoring for signals from the secondUE 3704, the first UE 3702 may compare its own second expression code3806 (generated at the first UE 3702) to a received second expressioncode 3707 broadcast by the second UE 3704 to determine a match. Inaspects, when the first UE 3702 determines a match on the secondexpression code 3806, then the first UE 3702 may determine that thelocation information 3708 included in the second signal 3706 isassociated with the first expression code 3811, which may be associatedwith an indication of content and/or services available at the second UE3704.

With respect to FIG. 38B, a diagram illustrates generation of adependent expression code when a device is to broadcast (e.g., announce)more than one expression code. For example, in the context of FIG. 37,the second UE 3704 may have available thereat a plurality of contentand/or services and a respective content and/or service may be announcedvia a respective expression code, including the first expression code3711.

As illustrated in FIG. 38B, two expression codes 3830, 3832 may beassociated with content and/or services available at a UE. For example,one of the expression codes 3830 may be an embodiment of the firstexpression code 3711 of FIG. 37 and the other expression code 3832 maybe similar thereto. A UE that is to broadcast (e.g., announce) bothexpression codes 3830, 3832 but consume only a single discovery resourcefor the second expression code (e.g., dependent expression code) andlocation information for the UE, may hash the expression codes 3830,3832 and truncate the results.

According to aspects, a first function 3840 may be applied to anexpression code 3830 and a second function 3842 may be applied to theother expression code 3832. The functions 3840, 3842 may be well-knownhash functions, such as a SHA hash functions or MD hash functions (e.g.,MD5 hash functions). In another aspect, the functions 3840, 3842 may beassociated with LTE-Direct and/or ProSe discovery, such as time varyinghash functions. In some aspects, the first function 3840 and the secondfunction 3842 may be a same function.

Application of the first function 3840 to the expression code 3830 andthe second function 3842 to the other expression code 3832 may generatetwo bit sequences 3820, 3822. These two bit sequences 3820, 3822 may betruncated and combined (e.g., concatenated) to form the secondexpression code 3818.

For example, in the context of FIG. 37, the second UE 3704 may apply thefirst function 3840 to the expression code 3830 (which may be the firstexpression code 3711) and apply the second function 3842 to the otherexpression code 3832 (which may be similar to the first expression code3711). Application of respective functions 3840, 3842 to respectiveexpression codes 3830, 3832 may cause the second UE 3704 to generaterespective bit sequences 3820, 3822.

The second UE 3704 may truncate these generated bit sequences 3820,3822. For example, the second UE 3704 may truncate these generated bitsequences 3820, 3822 to a size that is suitable for inclusion on adiscovery resource with location information. For example, the second UE3704 may truncate these generated bit sequences 3820, 3822 to thirty-two(32) bits. The second UE 3704 may combine (e.g., concatenate) thetruncated bit sequences 3823, 3824 into the second expression code 3818.The second UE 3704 may then generate a signal that includes this secondexpression code 3818 (which may be the second expression code 3707) andlocation information for the second UE 3704 (which may be the locationinformation 3708).

Continuing in the context of FIG. 37, the first UE 3702 may apply one ofthe functions 3840 to one of the expression codes 3830 (e.g., the firstexpression code 3711) that is of interest to the first UE 3702. Inaspects, the function 3840 used by the first UE 3702 may be known toboth the first UE 3702 and the second UE 3704. Therefore, both the firstUE 3702 and the second UE 3704 may generate a same bit sequence 3820.Similar to the second UE 3704, the first UE 3702 may truncate thegenerated bit sequence 3820 to determine the truncated bit sequence3823. Thus, when the first UE 3702 is monitoring for signals from thesecond UE 3704, the first UE 3702 may compare its own truncated bitsequence 3823 (generated at the first UE 3702) to bit sequences of areceived second expression code 3707 broadcast by the second UE 3704 todetermine a match, such as by comparing the bit sequence 3823 to thefirst portion and/or the second portion of the second expression code3707. In aspects, when the first UE 3702 determines a match on at leasta portion of the second expression code 3818, then the first UE 3702 maydetermine that the location information 3708 included in the secondsignal 3706 is associated with the first expression code 3830, which maybe associated with an indication of content and/or services available atthe second UE 3704.

FIG. 39 is a flow diagram illustrating a method 3900 for devicediscovery in a mobile network, according to various aspects. The method3900 may be performed by a UE, such as the second UE 3604 of FIG. 36 orthe second UE 3704 of FIG. 37. It should be understood that theoperations represented with dotted lines in FIG. 39 represent optionaloperations.

The method 3900 may begin with an operation 3902, where a UE maybroadcast a first signal that includes a first expression code inassociation with availability of location information for the UE. In anaspect, the first expression code may indicate a service and/or contentavailable at the UE. The first expression code may include a ProSeExpression Code that corresponds to a ProSe Application ID. In anaspect, the first expression code may include a public code, whereas thefirst expression code may include a private code in another aspect.

In one aspect, the first signal may include a flag and/or other bitsequence to indicate the availability of location information. In oneaspect, such a flag and/or bit sequence may be included in the firstexpression code.

In the context of FIG. 36, for example, the second UE 3604 may broadcastthe first signal 3610 that includes the first expression code 3611. Inthe context of FIG. 37, for example, the second UE 3704 may broadcastthe first signal 3710 that includes the first expression code 3711.

At operation 3904, the UE may determine the location informationassociated with the UE. The UE may determine the location informationbased on various techniques discussed in the present disclosure, such asGPS data, network-assisted positioning (e.g., via WiFi™ networkscanning), and/or other location specific data that may be providedthrough a GNSS. In the context of FIG. 36, for example, the second UE3604 may determine its current location. In the context of FIG. 37, forexample, the second UE 3704 may determine its current location.

In an aspect, the method 3900 may include an operation 3906 at which theUE may determine that the UE is moving. If the UE determines that it isnot moving, the UE may proceed to operation 3907. At operation 3907, theUE may send the determined location information to a network device tobe stored in association with the UE. However, if the UE is determinedto be moving, the UE may proceed to operation 3908.

For example, in the context of FIG. 36, the second UE 3604 may send thelocation information 3608 to the network device 3612. In response, thenetwork device 3612 may store the location information 3608 in metadata3614.

At operation 3908, the UE may determine a second expression codeassociated with the location information. In an aspect, operation 3908may include operations 3920, 3922. At operation 3920, the UE may send,to a network device, a request for the second expression code. Atoperation 3922, the UE may receive, from the network device, the secondexpression code. In the context of FIG. 36, for example, the second UE3604 determine the second expression code 3607, such as by generation ofthe second expression code 3607. In an aspect of operation 3920, thesecond UE 3604 may request the second expression code from a networkdevice 3612 and, at operation 3922, the second UE 3604 may receive thesecond expression code 3607 from the network device 3612.

In an aspect, operation 3908 may include operation 3930. At operation3930, the UE may determine the second expression code by generating thesecond expression code. Considering operation 3906 in the context ofFIG. 37, for example, the second UE 3704 may determine the secondexpression code 3707 by generating the second expression code 3707 basedon the first expression code 3711. In an aspect, the second UE 3704 maygenerate the second expression code 3707 based on application of a hashfunction (e.g., function 3812 of FIG. 38A or function 1 3840 or function2 3842 of FIG. 38B) to the first expression code 3711.

The method 3900 may include an operation 3910. At operation 3910, the UEmay request the network device to update metadata associated with thesecond expression code. For example, the UE may send the secondexpression code and/or metadata associated therewith to a networkdevice. In the context of FIG. 36, the second UE 3604 may request thenetwork device 3612 to update metadata 3614 associated with the secondUE 3604 (and/or associated with the first expression code 3611) inassociation with the second expression code 3607. In an aspect, themetadata 3614 may include the second expression code 3607. In an aspect,the second UE 3604 may request that the network device 3612 updatemetadata associated with the second UE 3604 (and/or associated with thefirst expression code 3611) based on detecting that the second UE 3604is moving (as determined at operation 3906).

At operation 3912, the UE may broadcast a second signal that is toinclude the second expression code and the location information. The UEis to broadcast the second signal independent of the first signal. In anaspect, the location information may include one or more of geographiccoordinates, GPS data, network-assisted positioning data, and/or otherlocation specific data that may be provided through a GNSS.

In the context of FIG. 36, for example, the second UE 3604 may broadcastthe second signal 3606 that includes the second expression code 3607 andthe location information 3608. In the context of FIG. 37, for example,the second UE 3704 may broadcast the second signal 3706 that includesthe second expression code 3707 and the location information 3708.

FIG. 40 is a flow diagram illustrating a method 4000 for devicediscovery in a mobile network, according to various aspects. The method4000 may be performed by a UE, such as the first UE 3602 of FIG. 36 orthe first UE 3702 of FIG. 37.

The method 4000 may begin with an operation 4002, where a UE mayreceive, from another UE, a first signal that includes a firstexpression code in association the other UE. In an aspect, the firstexpression code may indicate a service and/or content available at theUE. The first expression code may include a ProSe Expression Code thatcorresponds to a ProSe Application ID. In an aspect, the firstexpression code may include a public code, though the first expressioncode may include a private code in another aspect.

In one aspect, the first signal may include a flag and/or other bitsequence to indicate the availability of location information. In oneaspect, such a flag and/or bit sequence may be included in the firstexpression code.

In the context of FIG. 36, for example, the first UE 3602 may receive,from the second UE 3604, the first signal 3610 that includes the firstexpression code 3611. In the context of FIG. 37, for example, the firstUE 3602 may receive, from the second UE 3704, the first signal 3710 thatincludes the first expression code 3711.

At operation 4004, the UE may determine a second expression code basedon the received first signal. In an aspect, operation 4004 may includeoperations 4020, 4022, 4024. At operation 4020, the UE may send, to anetwork device, a request for metadata associated with the second UE. Inthe context of FIG. 36, for example, the first UE 3602 may send, to thenetwork device 3612, a request for metadata associated with the secondUE 3604, for example, based on a determination that the first expressioncode 3611 is of interest to the first UE 3602.

At operation 4022, the UE may receive the metadata from the networkdevice. For example, based on the request, the first UE 3602 mayreceive, from the network device 3612, metadata 3614 associated with thesecond UE 3604. At operation 4024, the UE may determine the secondexpression code based on the metadata received from the network device.For example, the first UE 3602 may determine the second expression code3607 from metadata 3614 received from the network device 3612.

In another aspect, operation 4004 may include operation 4030. Atoperation 4030, the UE may generate the second expression code based onthe first expression code. Considering operation 4030 in the context ofFIG. 37, for example, the first UE 3702 may determine the secondexpression code 3707 by generating the second expression code 3707 basedon the first expression code 3711. In an aspect, the first UE 3702 maygenerate the second expression code 3707 based on application of a hashfunction (e.g., function 3812 of FIG. 38A or function 1 3840 or function2 3842 of FIG. 38B) to the first expression code 3711.

At operation 4006, the UE may receive, from the other UE, a secondsignal that includes the second expression code. In an aspect, the UEmay receive the second signal before the first signal and may havecached information from that second signal, including the secondexpression code. In the context of FIG. 36, for example, the first UE3602 may receive, from the second UE 3604, the second signal 3606. Inthe context of FIG. 37, for example, the first UE 3702 may receive, fromthe second UE 3704, the second signal 3706.

Proceeding to operation 4008, the UE may determine a location of theother UE based on the received second signal and the determined secondexpression code.

In the context of FIG. 36, for example, the first UE 3602 may comparethe determined second expression code (e.g., the second expression codedetermined at operation 4004)—that is, the second expression codedetermined by the first UE 3602 from metadata 3614 received from thenetwork device—to the received second expression code 3607—that is, thesecond expression code received from the second UE 3604 in the secondsignal 3606. Where the first UE 3602 determines a match on thedetermined second expression code to the received second expressioncode, the first UE 3602 may determine that the location information inthe second signal 3606 is for the second UE 3604.

In the context of FIG. 37, for example, the first UE 3702 may comparethe determined second expression code (e.g., at operation 4004)—that is,the second expression code determined by the first UE 3702 based onapplication of a function to the first expression code 3711—to thereceived second expression code 3607—that is, the second expression codereceived from the second UE 3704 in the second signal 3706. Where thefirst UE 3702 determines a match on the determined second expressioncode and the received first expression code, the first UE 3702 maydetermine that the location information in the second signal 3706 is forthe second UE 3704.

FIG. 41 is a conceptual data flow diagram 4100 illustrating the dataflow between different modules/means/components in an exemplaryapparatus 4102. The apparatus may be a first UE (e.g., the first UE 3602and/or the first UE 3702). The apparatus 4302 depicts exemplaryconnections and/or data between different modules/means/components. Itis to be understood that such connections and/or data flow are to beregarded in as illustrative and, therefore, different and/or additionalconnections and/or data flow may be present in different aspects.

The apparatus 4102 includes a reception component 4104 that receives,from a second UE (e.g., the UE 4150), a first signal including a firstexpression code that is associated is the second UE and may beassociated with availability of location information for the second UE.The reception component 4104 further may receive, from the networkdevice (e.g., the ProSe Function 416), metadata associated with thesecond UE, such as metadata associated with location information for thesecond UE. The reception component 4104 further receives, from thesecond UE, a second signal including a second expression code andlocation information when associated with the second UE.

The apparatus 4102 further includes a discovery component 4110 thatdetects a first expression code in the first signal from the second UE.The discovery component 4110 may determine that the second UE provides aservice and/or content that is of interest to the apparatus 4102. Theapparatus 4102 further includes an expression determining component 4106that determines at least a second expression code based on the receivedfirst signal, the at least a second expression code associated with thesecond UE. The apparatus further includes a monitoring component 4118that monitors for a second signal from the second UE, the second signalto include the second expression code and location informationassociated with the second UE. The apparatus further includes a locationdetermining component 4120 that determines a location of the second UEfrom the second expression code based on the received second signal andthe determined expression code.

The apparatus may include additional components that perform each of theoperations of the algorithm in the aforementioned flow charts of FIG.40. As such, each operation in the aforementioned flow chart of FIG. 40may be performed by a component and the apparatus may include one ormore of those components. The components may be one or more hardwarecomponents specifically configured to carry out the statedprocesses/algorithm, implemented by a processor configured to performthe stated processes/algorithm, stored within a computer-readable mediumfor implementation by a processor, or some combination thereof.

FIG. 42 is a diagram 4200 illustrating an example of a hardwareimplementation for an apparatus 4102′ employing a processing system4214. The processing system 4214 may be implemented with a busarchitecture, represented generally by the bus 4224. The bus 4224 mayinclude any number of interconnecting buses and bridges depending on thespecific application of the processing system 4214 and the overalldesign constraints. The bus 4224 links together various circuitsincluding one or more processors and/or hardware components, representedby the processor 4204, the components 4104, 4106, 4110, 4118, 4120, 4122and the computer-readable medium/memory 4206. The bus 4224 may also linkvarious other circuits such as timing sources, peripherals, voltageregulators, and power management circuits, which are well known in theart, and therefore, will not be described any further.

The processing system 4214 may be coupled to a transceiver 4210. Thetransceiver 4210 is coupled to one or more antennas 4220. Thetransceiver 4210 provides a means for communicating with various otherapparatus over a transmission medium. The transceiver 4210 receives asignal from the one or more antennas 4220, extracts information from thereceived signal, and provides the extracted information to theprocessing system 4214, specifically the reception component 4104. Inaddition, the transceiver 4210 receives information from the processingsystem 4214, specifically the transmission component 4122, and based onthe received information, generates a signal to be applied to the one ormore antennas 4220. The processing system 4214 includes a processor 4204coupled to a computer-readable medium/memory 4206. The processor 4204 isresponsible for general processing, including the execution of softwarestored on the computer-readable medium/memory 4206. The software, whenexecuted by the processor 4204, causes the processing system 4214 toperform the various functions described supra for any particularapparatus. The computer-readable medium/memory 4206 may also be used forstoring data that is manipulated by the processor 4204 when executingsoftware. The processing system further includes at least one of thecomponents 4104, 4106, 4110, 4118, 4120, and/or 4122. The components maybe software components running in the processor 4204, resident/stored inthe computer-readable medium/memory 4206, one or more hardwarecomponents coupled to the processor 4204, or some combination thereof.The processing system 4214 may be a component of the UE 650 and mayinclude the memory 660 and/or at least one of the TX processor 668, theRX processor 656, and the controller/processor 659.

In one configuration, the apparatus 4200/4102′ for wirelesscommunication includes means for receiving, from a second UE, a firstsignal comprising a first expression code associated with the second UE.In an aspect, the apparatus 4200/4102′ includes means for determining asecond expression code based on the received first signal. In an aspect,the apparatus 4200/4102′ includes means for receiving a second signalfrom the second UE, the second signal comprising the second expressioncode. In an aspect, the apparatus 4200/4102′ includes means fordetermining a location of the second UE based on the received secondsignal and the determined second expression code.

In an aspect of the apparatus 4200/4102′, the first signal furthercomprises at least one bit to indicate availability of the location ofthe second UE. In an aspect, the first expression code comprises aProximity Services (ProSe) Expression Code that corresponds to a ProSeApplication Identifier (ID). In an aspect, the location information ofthe second UE is included in the second signal and includes at least oneof geographic coordinates or Global Positioning System (GPS) data.

In an aspect of the apparatus 4200/4102′, the means for determining thesecond expression code based on the received first signal is configuredto send, to a network device, a request for metadata associated with thesecond UE. In an aspect, the means for determining the second expressioncode based on first received first signal is further configured toreceive the metadata from the network device. In an aspect, the meansfor determining the second expression code based on first received firstsignal is further configured to determine the second expression codebased on the metadata received from the network device.

In an aspect of the apparatus 4200/4102′, the metadata comprises thesecond expression code. In an aspect, the means for determining thesecond expression code based on the received first signal is configuredto generate the second expression code based on the first expressioncode. In an aspect, the second expression code is generated based onapplication of a hash function to the first expression code.

In an aspect of the apparatus 4200/4102′, the means for determining thelocation of the second UE based on the received second signal and thedetermined second expression code is configured to determine that thegenerated second expression code matches the received second expressioncode of the second signal. In an aspect, the means for determining thelocation of the second UE based on the received second signal and thedetermined second expression code is further configured to determine thelocation of the second UE based on location information included in thesecond signal based on the determining that the generated secondexpression code matches the received second expression code of thesecond signal.

In an aspect of the apparatus 4200/4102′, the means for determining thelocation of the second UE based on the received second signal and thedetermined second expression code is configured to cache informationfrom the second signal, including the second expression code. In anaspect, the means for determining the location of the second UE based onthe received second signal and the determined second expression code isfurther configured to determine that the determined second expressioncode matches the cached second expression code. In an aspect, the meansfor determining the location of the second UE based on the receivedsecond signal and the determined second expression code is furtherconfigured to determine the location of the second UE based on thedetermining that the determined second expression code matches thecached second expression code.

The aforementioned means may be one or more of the aforementionedcomponents of the apparatus 4102 and/or the processing system 4214 ofthe apparatus 4102′ configured to perform the functions recited by theaforementioned means. As described supra, the processing system 4214 mayinclude the TX Processor 668, the RX Processor 656, and thecontroller/processor 659. As such, in one configuration, theaforementioned means may be the TX Processor 668, the RX Processor 656,and the controller/processor 659 configured to perform the functionsrecited by the aforementioned means.

FIG. 43 is a conceptual data flow diagram 4300 illustrating the dataflow between different modules/means/components in an exemplaryapparatus 4302. The apparatus may be an announcing UE (e.g., second UE3604 and/or second UE 3704). The apparatus 4302 depicts exemplaryconnections and/or data between different modules/means/components. Itis to be understood that such connections and/or data flow are to beregarded in as illustrative and, therefore, different and/or additionalconnections and/or data flow may be present in different aspects.

The apparatus 4302 includes a reception component 4304 that receivestransmissions from a network device (e.g., ProSe Function 4360). Thereception component 4304 may further receive transmission from anotherUE, such as a monitoring UE 4350, although the apparatus 4302 may onlytransmit to the monitoring UE 4350 in some aspects. The apparatus 4302may include an expression determining component 4308. The expressiondetermining component 4302 may be configured to determine a firstexpression code associated with content and/or services available at theapparatus 4302. The expression determining component 4302 may generatethe first expression code to include an indication of available oflocation information for the apparatus 4302. The apparatus 4302 mayfurther include a signal generation component 4310 configured togenerate a signal that includes expression codes determined by theexpression determining component 4308. The signal generating component4310 may provide such signals to the transmission component 4312 forbroadcast to another UE (e.g., the monitoring UE 4350).

The apparatus 4302 may include a location determining component 4306that determines location information associated with the apparatus 4302.The expression determining component 4308 may determine a secondexpression code that is associated with location information of theapparatus 4302. The signal generating component 4310 may generate asecond signal that includes the second expression code that the locationinformation.

The apparatus may include additional components that perform each of theblocks of the algorithm in the aforementioned flow chart of FIG. 39. Assuch, each block in the aforementioned flow chart of FIG. 39 may beperformed by a component and the apparatus may include one or more ofthose components. The components may be one or more hardware componentsspecifically configured to carry out the stated processes/algorithm,implemented by a processor configured to perform the statedprocesses/algorithm, stored within a computer-readable medium forimplementation by a processor, or some combination thereof.

FIG. 44 is a diagram 4400 illustrating an example of a hardwareimplementation for an apparatus 4302′ employing a processing system4414. The processing system 4414 may be implemented with a busarchitecture, represented generally by the bus 4424. The bus 4424 mayinclude any number of interconnecting buses and bridges depending on thespecific application of the processing system 4314 and the overalldesign constraints. The bus 4424 links together various circuitsincluding one or more processors and/or hardware components, representedby the processor 4404, the components 4304, 4306, 4308, 4310, 4312, andthe computer-readable medium/memory 4406. The bus 4424 may also linkvarious other circuits such as timing sources, peripherals, voltageregulators, and power management circuits, which are well known in theart, and therefore, will not be described any further.

The processing system 4414 may be coupled to a transceiver 4410. Thetransceiver 4410 is coupled to one or more antennas 4420. Thetransceiver 4410 provides a means for communicating with various otherapparatus over a transmission medium. The transceiver 4410 receives asignal from the one or more antennas 4420, extracts information from thereceived signal, and provides the extracted information to theprocessing system 4414, specifically the reception component 4304. Inaddition, the transceiver 4410 receives information from the processingsystem 4414, specifically the transmission component 4312, and based onthe received information, generates a signal to be applied to the one ormore antennas 4420. The processing system 4414 includes a processor 4404coupled to a computer-readable medium/memory 4406. The processor 4404 isresponsible for general processing, including the execution of softwarestored on the computer-readable medium/memory 4406. The software, whenexecuted by the processor 4404, causes the processing system 4414 toperform the various functions described supra for any particularapparatus. The computer-readable medium/memory 4406 may also be used forstoring data that is manipulated by the processor 4404 when executingsoftware. The processing system further includes at least one of thecomponents 4304, 4306, 4308, 4310, and/or 4312. The components may besoftware components running in the processor 4404, resident/stored inthe computer-readable medium/memory 4406, one or more hardwarecomponents coupled to the processor 4404, or some combination thereof.The processing system 4414 may be a component of the UE 650 and mayinclude the memory 660 and/or at least one of the TX processor 668, theRX processor 656, and the controller/processor 659.

In one configuration, the apparatus 4400/4302′ for wirelesscommunication includes means for broadcasting a first signal comprisinga first expression code in association with availability of locationinformation of a UE. In an aspect, the apparatus 4400/4302′ furtherincludes means for determining the location information associated withthe UE. In an aspect, the apparatus 4400/4302′ further includes meansfor determining a second expression code associated with the locationinformation. In an aspect, the apparatus 4400/4302′ further includesmeans for broadcasting a second signal comprising the second expressioncode and the location information, independent of the first signal.

In an aspect of the apparatus 4400/4302′, the first signal furthercomprises at least one bit to indicate the availability of the locationinformation. In an aspect, the apparatus 4400/4302′ further includesmeans for requesting a network device to update metadata stored in thenetwork device, the metadata to be associated with the second expressioncode. In an aspect, the means for the requesting the network device toupdate the metadata is configured to update the metadata based ondetecting that the UE is moving, and the apparatus 4400/4302′ furtherincludes means for detecting that the UE is moving.

In an aspect of the apparatus 4400/4302′, the means for determining thesecond expression code is configured to send, to a network device, arequest for the second expression code. In an aspect of the apparatus4400/4302′, the means for determining the second expression code isfurther configured to receive, from the network device, the secondexpression code based on the request. In an aspect of the apparatus4400/4302′, the means for determining the second expression codeassociated with the location information is configured to generate thesecond expression code based on the first expression code. In an aspectof the apparatus 4400/4302′, the means for determining the secondexpression code is configured to generate the second expression codebased on application of a hash function to the first expression code.

In an aspect of the apparatus 4400/4302′, the location informationcomprises at least one of geographic coordinates or Global PositioningSystem (GPS) data. In an aspect of the apparatus 4400/4302′, the firstexpression code comprises a Proximity Services (ProSe) Expression Codethat corresponds to a ProSe Application Identifier (ID).

The aforementioned means may be one or more of the aforementionedcomponents of the apparatus 4302 and/or the processing system 4414 ofthe apparatus 4400/4302′ configured to perform the functions recited bythe aforementioned means. As described supra, the processing system 4414may include the TX Processor 668, the RX Processor 656, and thecontroller/processor 659. As such, in one configuration, theaforementioned means may be the TX Processor 668, the RX Processor 656,and the controller/processor 659 configured to perform the functionsrecited by the aforementioned means.

It is understood that the specific order or hierarchy of operations inthe processes/flow charts disclosed is an illustration of exemplaryapproaches. Based upon design preferences, it is understood that thespecific order or hierarchy of operations in the processes/flow chartsmay be rearranged. Further, some operations may be combined or omitted.The accompanying method claims present elements of the variousoperations in a sample order, and are not meant to be limited to thespecific order or hierarchy presented.

The previous description is provided to enable any person skilled in theart to practice the various aspects described herein. Variousmodifications to these aspects will be readily apparent to those skilledin the art, and the generic principles defined herein may be applied toother aspects. Thus, the claims are not intended to be limited to theaspects shown herein, but is to be accorded the full scope consistentwith the language claims, wherein reference to an element in thesingular is not intended to mean “one and only one” unless specificallyso stated, but rather “one or more.” The word “exemplary” is used hereinto mean “serving as an example, instance, or illustration.” Any aspectdescribed herein as “exemplary” is not necessarily to be construed aspreferred or advantageous over other aspects. Unless specifically statedotherwise, the term “some” refers to one or more. Combinations such as“at least one of A, B, or C,” “at least one of A, B, and C,” and “A, B,C, or any combination thereof” include any combination of A, B, and/orC, and may include multiples of A, multiples of B, or multiples of C.Specifically, combinations such as “at least one of A, B, or C,” “atleast one of A, B, and C,” and “A, B, C, or any combination thereof” maybe A only, B only, C only, A and B, A and C, B and C, or A and B and C,where any such combinations may contain one or more member or members ofA, B, or C. All structural and functional equivalents to the elements ofthe various aspects described throughout this disclosure that are knownor later come to be known to those of ordinary skill in the art areexpressly incorporated herein by reference and are intended to beencompassed by the claims. Moreover, nothing disclosed herein isintended to be dedicated to the public regardless of whether suchdisclosure is explicitly recited in the claims. No claim element is tobe construed as a means plus function unless the element is expresslyrecited using the phrase “means for.”

What is claimed is:
 1. A method of wireless communication for a userequipment (UE), the method comprising: broadcasting a first signalcomprising a first expression code in association with availability oflocation information of the UE; determining the location informationassociated with the UE; determining a second expression code associatedwith the location information; and broadcasting a second signalcomprising the second expression code and the location information,independent of the first signal.
 2. The method of claim 1, wherein thefirst signal further comprises at least one bit to indicate theavailability of the location information.
 3. The method of claim 1,further comprising: requesting a network device to update metadatastored in the network device, the metadata to be associated with thesecond expression code.
 4. The method of claim 3, wherein the requestingof the network device to update the metadata is based on detecting thatthe first UE is moving, the method further comprising: detecting thatthe first UE is moving.
 5. The method of claim 1, wherein thedetermining the second expression code comprises: sending, to a networkdevice, a request for the second expression code; and receiving, fromthe network device, the second expression code based on the request. 6.The method of claim 1, wherein the determining the second expressioncode associated with the location information comprises: generating thesecond expression code based on the first expression code.
 7. The methodof claim 6, wherein the second expression code is generated based onapplication of a hash function to the first expression code.
 8. Themethod of claim 1, wherein the location information comprises at leastone of geographic coordinates or Global Positioning System (GPS) data.9. The method of claim 1, wherein the first expression code comprises aProximity Services (ProSe) Expression Code that corresponds to a ProSeApplication Identifier (ID).
 10. An apparatus for wireless communicationof user equipment (UE), the apparatus comprising: a memory; and at leastone processor coupled to the memory and configured to: broadcast a firstsignal comprising a first expression code in association withavailability of location information of the UE; determine the locationinformation associated with the UE; determine a second expression codeassociated with the location information; and broadcast a second signalcomprising the second expression code and the location information,independent of the first signal.
 11. The apparatus of claim 10, whereinthe first signal further comprises at least one bit to indicate theavailability of the location information.
 12. The apparatus of claim 10,wherein the at least one processor is further configured to request anetwork device to update metadata stored in the network device, themetadata to be associated with the second expression code.
 13. Theapparatus of claim 10, wherein the at least one processor is configuredto determine the second expression code by sending, to a network device,a request for the second expression code, and receiving, from thenetwork device, the second expression code based on the request.
 14. Theapparatus of claim 10, wherein the at least one processor is configuredto determine the second expression code associated with the locationinformation by generating the second expression code based on the firstexpression code.